私はプロジェクトを作成しています.これで、ドロップダウンリストから住所を取得したいのですが、ドロップダウンリストから国を選択すると、別のドロップダウンリストが表示され、対応する国の州が表示されます.州と同じように、要求まで続きますか?
質問する
289 次
2 に答える
1
「カスケード ドロップダウン」を探しています。事実上、最初のドロップダウンを選択すると ajax 呼び出しが行われ、成功すると 2 番目のドロップダウンが読み込まれます。
これは非常に一般的な機能 (おそらく ajax オートコンプリートと一緒に最も一般的) であり、Google で 1 つか 2 つの非常に堅実な例を見つけることができます。
このような取り組みには jQuery を使用することを強くお勧めします。
于 2012-06-13T12:04:05.120 に答える
0
<select name="country" onchange="showstate(this.value);">
//script code
function showstate(ctr)
{
if (ctr==" ")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var x=xmlhttp.responseText;
var arr = new Array();
var v=new Array();
arr=x.split(",");
// Create an Option object
document.getElementById("DropDownList").innerHTML='<option value="select">Select university</option>';
for (var i=0;i<arr.length-1;i=i+2)
{
v[i]=arr[i];
v[i+1]=arr[i+1];
document.getElementById("DropDownList").innerHTML+="<option value="+v[i]+">"+v[i+1]+"</option>";
}
}
}
xmlhttp.open("GET","getstate.php?q="+ctr,true);
xmlhttp.send();
}
// getstate.php
<?php
$q=$_GET["q"];
$sql="SELECT DISTINCT `state` FROM `tbname` WHERE `country` = '$q'";
$result=mysql_query($sql);
$str='';
while($row = mysql_fetch_array($result))
{
$str.=$row['country'].",";
}
echo $str;
?>
于 2012-06-13T12:10:39.313 に答える