У меня есть 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>
Но я не могу заполнить выбор сгенерированными параметрами. Спасибо.






$(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, но вы гений !!!! это решение сработало отлично !!! большое спасибо!! Теперь я попытаюсь воспроизвести это на других выборах. Еще раз спасибо!!!
выбрать принадлежит текущему выбранному раскрывающемуся списку, использовать второй раскрывающийся список для слежения по идентификатору