Раскрывающийся список мультиселекта работает как одиночный выбор в laravel?Как заполнить зависимый выпадающий список на основе множественного выбора? - PullRequest
0 голосов
/ 09 октября 2018

У меня есть два раскрывающихся списка с несколькими вариантами выбора.Я хочу заполнить 2-й раскрывающийся список с множественным выбором на основе 1-го раскрывающегося списка с множественным выбором.

web.php

Route::get('allstate/{id}', 'LocationController@allstate');

Раскрывающийся список стран (1-й)

<select  multiple="multiple" name="country[]" id="country" class="select">                 
@foreach($country_data as $country)
     <option value="{{$country->country_id}}" >
          {{$country->country_name}}</option>
@endforeach
</select>

Состояние раскрывающегося списка (2-е)

<select  multiple="multiple" name="city[]" id="city" class="select">                   

 </select>

Контроллер

public function index()
{
 $country_data=DB::table('country')->select('country_id','country_name')->orderby('country_name')->get();
return view('location',compact('country_data') );
}
public function allstate($id)
{
$state_data= DB::table('state')->whereIn('country_id',$id)->select('state_id','state_name')->get();
return json_encode($caste_data);
}

Скрипт

<script type="text/javascript">
$(document).ready(function() {
$('select[name="country[]"]').on('change', function() {
    var countryID = $(this).val();

    if(countryID) {
        $.ajax({
            url: 'allstate/'+countryID,
            type: "GET",
            dataType: "json",
            success:function(data) {
                $('select[name="city[]"]').empty();
                $.each(data, function(key, value) {
                    $('select[name="city[]"]').append('<option value="'+ value.city_id +'">'+ value.city_name +'</option>');
                });

            }
        });
    }else{
        $('select[name="city[]"]').empty();
    }
});
});
...