我正在嘗試爲使用我們的內部應用程序的用戶提供易於使用的表單。基本上我有一個選擇元素。我想要的是當我選擇任何我想填寫指定的文本框。獲取選定的數據並填充文本框
代碼如下。這工作正常,但只填寫1盒。請不要忘記通常我從mySQL數據庫獲取數據。
HTML文件:
<script src="choose.js"></script>
<select onchange="ChooseGuest(this.value)">
<option value="1">guest 1</option>
<option value="2">guest 2</option>
<option value="3">guest 3</option>
</select>
<input type="text" id="guestdetails"/>
<input type="text" id="guestdetails2"/>
PHP數據文件:
$AskForIt = $_GET["q"];
If ($AskForIt == "1") {
echo "guest 1 data";
} Elseif ($AskForIt == "2") {
echo "guest 2 data";
} Elseif ($AskForIt == "3") {
echo "guest 3 data";
}
js文件:
var xmlHttp
function ChooseGuest(str)
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("upgrade your browser");
return;
}
var url="guests.php";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
function stateChanged()
{
if (xmlHttp.readyState==4)
{
document.getElementById("guestdetails").value=xmlHttp.responseText;
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
你可以使用jQuery AJAX而不是HTTP。 – Webinion
歡迎來到Stack Overflow。這段代碼乍一看是正確的。什麼具體不工作,或者人們怎麼幫助? – Twisty
您的代碼僅設置爲填充第一個框,如此處所示document.getElementById(「guestdetails」)。value = xmlHttp.responseText; –