我使用PHP中的AJAX构建了国家和城市下拉菜单。他们工作正常。但问题是我想要选择任何国家/地区,然后选择“please select"
选项”城市选项也返回"please select"
如何修改ajax代码来执行此操作?
<script type="text/javascript">
// <![CDATA[
$(document).ready(function(){
$('#country').change(function(){ //any select change on the dropdown with id country trigger this code
$("#cities > option").remove(); //first of all clear select items
var country_id = $('#country').val(); // here we are taking country id of the selected one.
$.ajax({
type: "POST",
url: "get_cities/"+country_id, //here we are calling our user controller and get_cities method with the country_id
success: function(cities) //we're calling the response json array 'cities'
{
$.each(cities,function(id,city) //here we're doing a foeach loop round each city with id as the key and city as the value
{
var opt = $('<option />'); // here we're creating a new select option with for each city
opt.val(id);
opt.text(city);
$('#cities').append(opt); //here we will append these new select options to a dropdown with the id 'cities'
});
}
});
});
});
// ]]>
</script>
//下拉菜单
<label for="country">Country: </label>
<select id="country" name="country_id">
<option selected="selected" value="#">Please Select</option>
<?php foreach ($countries as $country) { ?>
<option value="<?= $country['id'] ?>"><?= $country['country_name'] ?></option>
<?php } ?>
</select>
<label for="city">City: </label>
<select id="cities" name="city_id">
<option selected="selected" value="#">Please Select</option>
<?php foreach ($cities as $city) { ?>
<option value="<?= $city['id'] ?>"><?= $city['city_name'] ?></option>
<?php } ?>
</select>
答案 0 :(得分:1)
如果选择的选项为please select
,则不要继续使用ajax并清除城市选项。
$('#country').change(function(){
var country_id = $(this).val();
if(country_id === '#') return; // return if selected country option is default.
// and rest of the code
$("#cities > option").remove();
});
答案 1 :(得分:0)
我猜你在使用Ajax检索的城市列表中,你有第一个城市的“请选择”选项。 否则,您应该使用Id值0添加它。这样,如果用户触发提交而不选择城市,则可以轻松过滤。
然后,回答你的问题。
<script type="text/javascript">
// <![CDATA[
$(document).ready(function(){
$('#country').change(function(){ //any select change on the dropdown with id country trigger this code
$("#cities > option").remove(); //first of all clear select items
var country_id = $('#country').val(); // here we are taking country id of the selected one.
$.ajax({
type: "POST",
url: "get_cities/"+country_id, //here we are calling our user controller and get_cities method with the country_id
success: function(cities) //we're calling the response json array 'cities'
{
$.each(cities,function(id,city) //here we're doing a foeach loop round each city with id as the key and city as the value
{
var opt = $('<option />'); // here we're creating a new select option with for each city
opt.val(id);
opt.text(city);
$('#cities').append(opt); //here we will append these new select options to a dropdown with the id 'cities'});
**$("#cities option:first").attr('selected','selected');**
}
});
});
});
// ]]>
</script>
您告诉select将第一个选项设置为select。
希望这会有所帮助!!