我希望获得所选国家的城市我创建一个包含ID,国家和城市的位置表,并通过Json获取国家/地区
var items="";
$.getJSON("get-data.php",function(data){
$.each(data,function(index,item)
{
items+="<option value='"+item.id+"'>"+item.country+"</option>";
});
$("#class_id").html(items);
});
$('select').on('change', function() {
a=this.value;
});
现在我想在选择国家时选择城市..
<?php
error_reporting(0);
$conn=mysql_connect('localhost', 'root', '') or die("Can't Connect With Local");
mysql_select_db('f_o_r',$conn) or die("Local DB Not Found");
$q = "SELECT DISTINCT country FROM location";
$sql = mysql_query($q) or die("query failed");
$data = array();
while($row = mysql_fetch_array($sql, true)){
$data[] = $row;
}
echo json_encode($data);
?>
答案 0 :(得分:0)
您可以按如下方式填充值:
$.getJSON("get-data.php",function(data){
$.each(data,function(index,item)
{
$("#country_id").append('<option value="'+item.id+'">'+item.country+'</option>'); // It will append all values
}
}
选择此项后,您可以选择国家/地区列表中的状态,如下所示: 使用帖子:
$("#country_id").change(function()
{
$.post('getstate.php',{country_id:$("#country_id").val()},function(data)
{
for(var i=0;i<data.length;i++)
{
$("#state_id").append('<option value="'+data[i].state_id+'">'+data[i].state_name+'</option>'); // It will append all values
}
});
});
在getstate.php中编写代码以根据$_POST['country_id']
获取状态。
答案 1 :(得分:0)
我认为您可以将级别列添加到表位置,以便注释位置类型。
exp:
0 => country
1 => city
2 => ...
你的api可能需要改变:
[params]
parent_id: the parent id
level: look for level
[exp]
url: get-data.php?parent_id=6&level=1
then you may get US(id equal 6)'s all cities
你的js需要在国家/地区添加更改侦听器,当它被更改时发送ajax就好了
$('#country_id').change(function(){
$.post('get-data.php',{parent_id:$('#country_id').val(),level:1},function(data){
console.log(data);
//get your data cities do want you want
});
});
get-data.php =&gt; router / xxx / location method获取更多 restful
答案 2 :(得分:0)
为了将城市与国家联系起来。删除$ data = []
后添加此代码while($row = mysql_fetch_array($sql, true)){
$data1['country'] = $row['country'];
$citysql = "SELECT cities from location where country = '".$row['country']."'";
while($row1 = mysql_fetch_array($citysql,true))
{
array_push($data1['cities'],$row1['cities']);
}
array_push($data,array($data1['country'],$data1['cities']));
}