Добавить параметр Выбрать Ajax

У меня есть 3 зависимых варианта выбора, и я пытаюсь для заполнения в зависимости от предыдущего выбора с помощью AJAX, но не могу.

Я использую Laravel, и с этой частью все в порядке.

HTML:

<div class = "form-group col-md-3">
    {!! Form::label('country', 'Seleccione el País') !!}</br>

    <select name = "country" id = "country" class = "form-control country" >
        <option value = ""  disabled selected>Paises</option>
        @foreach($countries as $country)
           <option value = "{{$country->id}}">{{$country->name}}</option>
        @endforeach  
   </select>
</div>


<div class = "form-group col-md-3">
    {!! Form::label('prov', 'Seleccione la Provincia') !!}</br>

    <select name = "province" id = "province" class = "form-control province">    
        <option value = ""  disabled>Provincias</option>
    </select> 
</div>


<div class = "form-group col-md-3">
    {!! Form::label('county', 'Seleccione el Partido') !!}</br>
    <select class = "form-control" name = "county" id = "county">
        <option value = ""  disabled >Partido</option>
    </select>
</div>

<div class = "form-group col-md-3">
    {!! Form::label('locality', 'Seleccione la Localidad') !!}</br>
    <select class = "form-control" name = "locality" id = "locality">
        <option value = ""  disabled >Localidad</option>
    </select>
</div>

JS:

<script type = "text/javascript">

$(document).ready(function(){

$(document).on('change','.country',function(){
     //console.info("hmm its change");

    var country_id=$(this).val();
    // console.info(country_id);
    var select=$(this).parent();
     console.info(select);
    var op = " ";

    $.ajax({
        type:'get',
        url:'{{ URL::route('findProvince') }}',
        data:{'id':country_id},
        success:function(data){
            //console.info(url);

            //console.info(data);

            //console.info(data.length);
            op+='<option value = "0" selected disabled>Selecciona La Provincia</option>';
            for(var i=0;i<data.length;i++){
            op+='<option value = "'+data[i].id+'">'+data[i].name+'</option>';
            //console.info(op);
           }

           select.find('.province').html(" ");
           select.find('.province').append(op);
           //console.info(op);

        },
        error:function(){

        }
    });
});
});

</script>

Я предполагаю, что проблема в select.find, потому что я вижу правильный ответ в console.info(op).

Это операционные данные:

 <option value = "0" selected disabled>Selecciona La Provincia</option>
 <option value = "1">Buenos Aires</option>
 <option value = "2">Catamarca</option> 
 <option value = "3">Chaco</option>
 <option value = "4">Chubut</option>
 <option value = "5">Córdoba</option>
 <option value = "6">Corrientes</option>
 <option value = "7">Entre Ríos</option>
 <option value = "8">Formosa</option>
 <option value = "9">Jujuy</option>
 <option value = "10">La Pampa</option>
 <option value = "11">La Rioja</option>
 <option value = "12">Mendoza</option>
 <option value = "13">Misiones</option>
 <option value = "14">Neuquén</option>
 <option value = "15">Río Negro</option>
 <option value = "16">Salta</option>
 <option value = "17">San Juan</option>
 <option value = "18">San Luis</option>
 <option value = "19">Santa Cruz</option>
 <option value = "20">Santa Fe</option>
 <option value = "21">Santiago del Estero</option>
 <option value = "22">Tierra del Fuego</option>
 <option value = "23">Tucumán</option>
 <option value = "24">Ciudad Autónoma de Buenos Aires</option>

Но я не могу заполнить выбор сгенерированными параметрами. Спасибо.

выбрать принадлежит текущему выбранному раскрывающемуся списку, использовать второй раскрывающийся список для слежения по идентификатору

Ahmed Sunny 16.08.2018 17:13
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
1
243
1

Ответы 1

$(this).parent(), хранящийся в вашей переменной select, будет ссылаться на родительский div тега .country, что означает, что при попытке selec.find(".province") селектор не найдет элемент, поскольку внутри div нет элемента с классом province. Я предлагаю настроить таргетинг на выбор с помощью id (он должен быть уникальным), используя:

var select = $("#province");

Затем замените:

select.find('.province').html(" ");
select.find('.province').append(op);

По :

select.html(op);

Закария !!! в общем, это не моя любимая вещь, я просто немного знаю ajax, но вы гений !!!! это решение сработало отлично !!! большое спасибо!! Теперь я попытаюсь воспроизвести это на других выборах. Еще раз спасибо!!!

Raul Biancardi 17.08.2018 02:49

Другие вопросы по теме