2016-08-02 7 views
0

Ich habe Dropdown-Menü in Vorlage Laravel.Wie lade ich Daten im Dropdown-Menü in Laravel?

Dies ist eine Liste mit Ländernamen.

Ich muss Städte im nächsten Dropdown-Menü nach dem Klicken nach Element des Landes laden.

Also ich denke, es sollte Ajax Anfrage an den Controller Laravel sein, dass Städte nach ID Land zu bekommen.

Vielleicht gibt es eine Lösung?

Antwort

2

Sie so etwas wie dies in jQuery

Die Javascript

<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> 
tun konnte, vergessen Sie nicht, es in $(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); 
     }); 
}); 

Und dann in Ihrem Laravel Controller zu setzen oder direkt von der Strecke, Sie könnten die Länder und Städte als mehrdimensionale Arrays zurückgeben

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>"; 
     } 
    } 
}); 
Verwandte Themen