我有三個下拉列表:國家,州和城市。填充下拉列表
我想基於狀態列表選擇基於在國家列表選擇填充狀態列表和填充城市名單。
下面是我嘗試這個
從國家列表,使用onchage事件中,我調用java腳本功能。
<select name="country" id="id1" onchange="onCountryChange(this.value)">
然後我發送一個請求到服務器以獲取與國家相關聯的州的名稱。
function onCountryChange(str){ if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); } else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById("statenames").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","./view/countrychange.php?countryname="+str,true); xmlhttp.send(); }
我使用下面的代碼得到狀態的值。
<?php $countryname=$_GET["countryname"]; $connection = pg_connect("host=localhost port=5432 dbname=STAGE2 user=postgres password=jssate"); if (!$connection){ echo "<H1>Error in connection to Database</H1>"; echo "<H2>Please try again</H2>."; } else{ $query1="Select distinct(state) from master_table where country='$countryname'"; $result = pg_query($connection,$query1); $numrows = pg_numrows($result); if ($numrows>0){ echo "State <select name="state" id="stateid">; for ($row_index=0;$row_index<$numrows;$row_index++) { $state_name=pg_result($result,$row_index,0); echo "<option value="$state_name\">$state_name</option>"; } echo "</select>"; } } pg_close($connection); ?>
3 .Used上我的客戶端執行以下操作的代碼來顯示結果。
<div id="statenames">
//Original select list placed here is replaced by the one returned by server.
</div>
這對我和我的國家都是基於國家名填充。現在我該如何填充第三個列表。我選擇的顯示狀態列表的方法是否正確?因爲我無法控制我現在得到的狀態選擇列表。
你可以把你的代碼好一點請,這是很難讀,因爲它是 –
我試圖編輯它幾次。有些東西是不可靠的。 –
JavaScript中的轉義字符是否必需?爲什麼不嘗試xmlhttp = new ActiveXObject(「Microsoft.XMLHTTP」); –