2016-08-02 13 views
0

템플릿 Laravel에 드롭 다운 메뉴가 있습니다.Laravel의 드롭 다운 메뉴에서 데이터를로드하는 방법은 무엇입니까?

국가 별 이름이있는 선택 목록입니다.

국가 별 항목을 클릭하면 가장 가까운 드롭 다운 메뉴에서 도시를로드해야합니다.

그래서, 나는 그것이 id 나라에 의해 도시를 얻으려는 컨트롤러 Laravel에게 Ajax 요청이어야한다고 생각합니다.

어쩌면 해결책이 있을까요?

답변

2

당신은 당신의 Laravel 컨트롤러에 직접 경로에서 $(document).ready()

$("select.country").change(function(){ 
    var selectedCountry = $(".country option:selected").val(); 

    $.ajaxSetup({ 
     headers: { 
      'X-CSRF-TOKEN': '{{csrf_token()}}' 
     } 
    }); 

    $.ajax({ 
     method: "POST", 
     url: "countriesList", 
     data: { country : selectedCountry } 
     }).done(function(data){ 
      $("#response").html(data); 
     }); 
}); 

그리고 안쪽에 넣어하는 것을 잊지 마세요, jQuery를

<select class="country"> 
    <option>Select</option> 
    <option value="usa">United States</option> 
    <option value="india">India</option> 
    <option value="uk">United Kingdom</option> 
</select> 
<input type="hidden" name="_token" value="{{ csrf_token() }}"> 

<div id="response"></div> 

자바 스크립트에서 이런 일을 할 수있는, 국가 및 도시를 다차원 배열로 반환 할 수 있습니다.

Route::post('countriesList', function() { 
    if(Request::ajax()) { 
     $country = Input::get('country'); 

     $countryArr = [ 
      "usa" => ["New York", "Los Angeles", "California"], 
      "india" => ["Mumbai", "New Delhi", "Bangalore"], 
      "uk" => ["London", "Manchester", "Liverpool"] 
     ]; 

     if($country !== 'Select'){ 
      echo "<label>City:</label>"; 
      echo "<select>"; 
      foreach($countryArr[$country] as $value){ 
       echo "<option>". $value . "</option>"; 
      } 
      echo "</select>"; 
     } 
    } 
}); 
관련 문제