2016-08-02 72 views
0

我在模板Laravel中有下拉菜单。如何在Laravel的下拉菜单中加载数据?

这是选择列表与国家的名字。

我需要通过国家项目点击后可以加载在最近的下拉菜单中城市。

所以,我觉得应该是Ajax请求到控制器Laravel,即获得由ID全国多个城市。

也许有什么解决办法吗?

回答

2

你可以做这样的事情在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> 

JavaScript的,不要忘了把它里面$(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); 
     }); 
}); 

,然后在Laravel控制器或直接从路线,你可以返回的国家和城市,如多维数组

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>"; 
     } 
    } 
}); 
相关问题