Как загрузить зависимый выпадающий на Multi-Select в Laravel - PullRequest
0 голосов
/ 04 июля 2018

Я хочу загрузить зависимое dropdwon на множественный выбор в laravel. Как я могу загрузить? Теперь у меня есть выбор сигната, чтобы загрузить выпадающий список. Ниже мой код, я хочу загрузить зависимый dropdwon на множественный выбор в laravel. Как я могу загрузить? Теперь я выберите sigle, чтобы загрузить выпадающий список. ниже мой код

<select class="form-control"  id="region_country_id" name="region_country_id" >
    <?php foreach ($countries as $key => $value) { ?>
    <option value="<?php echo $value->id; ?>"<?php if($product->region_country_id == $value->id){ echo "selected";} ?>>
        <?php echo $value->name;?>
    </option>
    <?php } ?>
</select>

 <select class="form-control" id="region_id" name="region_id" style="margin-top: 10px;" >
     <?php if(Session::get('branch_access') != 1)
     {?>
      <option value="">All region</option>
      <?php } ?>
      <?php foreach ($regions as $key => $value)  { ?>
      <option value="<?php echo $value->id; ?>" <?php if($value->id == $product->region_id) { echo "selected";} ?>><?php echo $value->region; ?>
      </option>
      <?php  } ?>
 </select>

ниже скрипт для выше

$('body').on('change', '#region_country_id', function() {
    loadOptionRegion($(this).val());
});

function loadOptionRegion(countryID) {
    $.ajax({
        method: "POST",
        url: "/region/country",
        dataType: 'json',
        data: {
            'country_id': countryID
        },
        beforeSend: function() {},
        success: function(data) {
            console.log(data.data.region);
            var regionList = data.data.region;
            var str = '<option value="0">All Region</option>';
            $.each(regionList, function(index, value) {
                str = str + "<option value='" + value.id + "'>" + value.region + "</option>";
                console.log(str);
            });
            $("#region_id").html(str);

        }
    })
}

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Сначала добавьте multiple в поле выбора

<select class="form-control"  id="region_country_id" name="region_country_id" multiple>

Теперь в вашем контроллере измените запрос с where на whereIn идентификатор страны

От:

->where('country_id',$countryId);

Кому:

->whereIn('country_id',$arrOfCountryID);
0 голосов
/ 04 июля 2018
{!! Form::label("Department") !!}
 <select id="depId" class="form-control" name="depId">
      <option value="">--- Select Department ---</option>
           @foreach ($departments as $key => $value)
               <option value="{{ $key }}">{{ $value }}</option>
           @endforeach
</select>     
{!! Form::label("Sub Office") !!}
 <select id="sub_office_id" class="form-control" name="sub_office_id">
         <option value="">--- Select Sub Offices ---</option>
 </select>

// И JavaScript

 <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script>$("#depId").change(function()  {
        depId = $(this).val();
        if(depId) {
            $.ajax({

                url: "{{ route('userform') }}",
                type: "GET",
                data: {id:depId},
                dataType: "json",
                success:function(data) {

                    $("#sub_office_id").empty();
                    $.each(data, function(key, value) {
                        $("#sub_office_id").append('<option value="'+ key +'">'+ value +'</option>');
                    });

                }
            });

        }else{
            $("#sub_office_id").empty();
        }
    });</script>

// и маршрут для ajax

  Route::get('userform',array('as'=>'userform','uses'=>'Admin\UserController@userformAjax'));

// и метод контроллера для ajax

 public function userformAjax(Request $request)
{
    $data = $request->id;

    $suboffices = $this->suboffice
        ->where("depId",$data)
        ->lists("subOffice","id");

    return json_encode($suboffices);

}

// здесь мы используем магический метод для отправки идентификатора контроллеру

// здесь я получаю соответствующие вспомогательные офисы для главных офисов, чтобы вы могли изменить код, чтобы получить регионы для страны и убедитесь, что AJAX работает или нет, напрямую введите маршрут AJAX в URL и исправьте ошибки в AJAX, тогда он будет работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...