2014-01-08 32 views
0

我有一個表格,其中一個表格行中有一個下拉狀態字段在另一個tr另一個下拉列表中有選擇城市,我需要在提交表單之前用戶從下拉列表中自動選擇一個狀態,城市下拉列表只應從所選狀態獲取並顯示那些城市。jquery php代碼綁定狀態和從mysql數據庫表中的城市

我不想使用AJAX,但想用jQuery來做到這一點。 後端數據庫有兩個表格一個是有兩個字段id和狀態的狀態,其次是有三個字段id的城市表格,狀態是我的外鍵狀態和城市。

我怎麼能做到這一點與jQuery這方面的任何幫助,因爲我是新手可以理解的,請大家幫忙

+0

jquery包含Ajax ...爲什麼不使用它?如果你不能使用它......你可以在啓動頁面之前加載Everything(例如php serverside)並將其放入一個Javascript var,或者當用戶選擇第一個下拉菜單時,可以使框架或iframe發生更改。 – Goikiu

+0

可以嗎?請給我提供一些代碼,我的意思是一些演示。請 – Rakhi

回答

1

如果你不想使用AJAX你總是可以預加載狀態與城市的完整列表到一個JavaScript對象,並從那裏調用它。

例子:

<select id="stateDrop"> 
    <option value="state1">State 1</option> 
    <option value="state2">State 2</option> 
</select> 
<select id="cityDrop"></select> 
    <script> 
    var cities = {'state1':['city_one', 'city_two', 'city_three'], 'state2':['city_four', 'city_five', 'city_six']}; 
    $('#stateDrop').on('change', function(){ 
     var cityList = cities[$(this).val()]; 
     console.log(cityList); 
     var output = ''; 
     $(cityList).each(function(k, v){ 
      output += '<option value="'+v+'">'+v+'</option>'; 
     }); 
     $('#cityDrop').html(output); 
    }); 
    </script> 

Fiddle

+0

哇你的代碼似乎很好,但我的狀態和城市是動態值我怎樣才能動態地分配城市變量從表 – Rakhi

+0

變量在這個例子中變量「城市」充滿了硬編碼數據。您可以在初始頁面加載中執行單個數據庫提取,並以JSON字符串的形式發佈返回結果。之後,您將所述字符串分配給「城市」變量。 – Fyntasia

1

如果你想避免使用Ajax調用,您將需要建立從國家-ID的一個映射,以城市的名單。然後將函數綁定到狀態選擇元素的更改事件,並使用值填充城市選擇元素。

假設狀態ID 0具有城市A和B,隨着城市ID的0和1:

例子:http://jsfiddle.net/HQLQU/

的PHP/MySQL的部分爲建設JS-地圖可能是什麼像這樣(未經測試!):

$query = "SELECT city_id, city_name, state_id FROM cities"; 
$result = mysql_query($query); //or preferably use a more modern extension 
$cities = array(); 
foreach (mysql_fetch_assoc($result) as $row) { 
    $cities[$row['state_id']][] = array("id"=>$row['city_id'],"name"=>$row['city_name']); 
} 
echo "var map = " . json_encode($cities);