jquery是一種非常流行的JavaScript庫,它可以快速地為網站添加交互效果。一項非常常見的需求是:根據用戶選擇的省份,動態地顯示該省下面所有的城市。在此我們可以利用jquery,通過AJAX技術,實現這樣一個功能。
我們可以使用兩個下拉列表框:一個用于選擇省份,另一個用于展示該省份下面所有的城市。首先,我們在HTML中添加這兩個下拉列表:
<select id="province"> <option value="0">請選擇省份</option> <option value="1">北京</option> <option value="2">上海</option> <option value="3">廣東</option> </select> <select id="city"> <option value="0">請選擇城市</option> </select>
接下來,我們可以使用jquery來動態地獲取城市列表。當用戶選擇了一個省份后,我們就可以使用AJAX從服務器中獲取相應的城市列表。然后,我們可以將這些城市添加到第二個下拉列表中,以供用戶選擇。
$(document).ready(function(){ $("#province").change(function(){ var pid = $("#province option:selected").val(); if(pid != "0"){ $.ajax({ url:"get_cities.php", type:"POST", data:{province_id:pid}, dataType:"json", success:function(result){ $("#city").empty(); $.each(result,function(index,city){ $("#city").append("<option value='"+city.id+"'>"+city.name+"</option>"); }); } }); } }); });
代碼解釋:
- 當用戶選擇一個省份時,我們獲取該省份的ID值。
- 如果省份ID不為0,則向服務器發送一個AJAX請求,請求的參數是這個省份ID。
- 服務器返回一個JSON格式的城市列表,我們使用 $.each 來遍歷這個列表。對于每個城市,我們將它的ID和名稱添加到第二個下拉列表中。
- 如果用戶選擇一個新的省份,則會清空第二個下拉列表,然后加載新的城市列表。
這段代碼可以在get_cities.php中實現,這是一個服務器端的腳本,用于獲取城市列表。例如:
$province_id = $_POST["province_id"]; $sql = "SELECT * FROM city WHERE province_id = $province_id"; $result = mysql_query($sql, $conn); $cities = array(); while($row=mysql_fetch_assoc($result)){ $city = array(); $city['id'] = $row['id']; $city['name'] = $row['name']; $cities[] = $city; } echo json_encode($cities);
這個腳本從數據庫中獲取相應省份的城市列表,并將結果以JSON格式返回。
通過以上的方法,我們可以快速地實現一個省份城市的選擇器,使得用戶可以快速選擇其所在的城市,為網站交互效果帶來極大的便利性。
上一篇jquery 確認提交
下一篇jquery 監聽窗口