[英]Dynamic country, state, city dropdown select
我有1个静态(国家)和2个动态(州和城市)下拉选择。
我正在使用Select2。
例如,荷兰每个州都有大量的城市。 加载这个很难处理。
在我的用户页面上,如果有以下JS:
$(".state").change(function()
{
var id=$(this).val();
var dataString = 'id='+ id;
$.ajax
({
type: "POST",
url: "../../get/get_city.php",
data: dataString,
cache: false,
success: function(html)
{
$(".city").html(html);
}
});
});
get_city.php工作,看起来像:
if($_POST['id'])
{
$id=$_POST['id'];
$stmtc = $admin_home->runQuery("SELECT * FROM city WHERE state_id=:id");
$stmtc->execute(array(':id' => $id));
?><option selected="selected">Selecteer een woonplaats:</option><?php
while($rowc=$stmtc->fetch(PDO::FETCH_ASSOC))
{
?>
<option value="<?php echo $rowc['city_id']; ?>"><?php echo $rowc['city_zip']; ?> <?php echo $rowc['city_name']; ?></option>
<?php
}
}
我也尝试使用这个代码与select2分别使用AJAX(也正在工作):
$('.itemName').select2({
placeholder: 'Select an item',
ajax: {
url: '../../get/get_city_ajax.php',
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: data
};
},
cache: true
}
});
get_city_ajax.php看起来像:
$stmtc = $admin_home->runQuery("SELECT * FROM city "
. "WHERE city_name LIKE '%".$_GET['q']."%' LIMIT 10");
$stmtc->execute();
$json = [];
while($rowc=$stmtc->fetch(PDO::FETCH_ASSOC))
{
$json[] = ['id'=>$rowc['city_id'], 'text'=>$rowc['city_name']];
}
echo json_encode($json);
现在需要两者的组合才能获得所选州的城市。
我尝试了很多,但无法让它工作。
这个解决方案适合我:
$(".state").change(function()
{
var id=$(this).val();
var dataString = 'id='+ id;
$('.city').select2({
placeholder: 'Selecteer een stad',
ajax: {
url: '../../get/get_city_ajax.php?'+dataString,
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: data
};
},
cache: true
}
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.