如何在php中使用mysql选择国家

时间:2016-08-10 05:46:33

标签: javascript php mysql

我希望获得所选国家的城市我创建一个包含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);


?>

3 个答案:

答案 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'])); 
}