2016-08-10 5 views
0

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); 


?> 
次のように、自分の価値観を移入することができ
+0

選択* FROM cities WHERE country = '$ country' –

答えて

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']に基づいて状態を取得するためのコードを記述します。

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が

$('#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 
    }); 
}); 
を好きにAJAXを送って、それが変更されている国、上 変更リスナーを追加必要

get-data.php =>ルータ/ xxx/locationメソッド安心

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'])); 
} 
関連する問題