我對AJAX不太熟練,但我認爲這應該起作用。 它應該做的是用戶從下拉列表中選擇一個名稱,而另一個下拉列表(使用PHP從MySQL數據庫填充)自動選擇關聯的對象。因此,讓我們說你有:根據AJAX響應更改下拉值
名稱:蘇西/邁克爾/卡倫
最喜歡的水果:蘋果/橙/芒果/番石榴
選擇蘇西,它會自動選擇「橙色」,因爲這是她的最愛在數據庫中結果。
我已經得到了Ajax代碼,將下拉菜單改爲關聯的「水果」。
<script type="text/javascript">
function getAff(str)
{
if (str=="NULL" || str=="")
{
document.getElementById("fruit").value="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(xmlhttp.responseText);
var indexVal = document.getElementById("fruit").length;
for(x=0; x<indexVal;x++) {
if (document.getElementById("fruit").options[x].value == xmlhttp.responseText) {
document.getElementById("fruit").selectedIndex = x;
//alert(xmlhttp.responseText);
}
}
}
}
xmlhttp.open("GET","getaff.php?q="+str,true);
xmlhttp.send();
}
</script>
我已經通過警報確認它拉動了正確的值,儘管我已經評論過這裏。
一個問題是,下拉框不會改變。我不知道這是因爲它是通過PHP生成的?不過,它不應該是。每個下拉選擇的值是從數據庫中提取的水果的名稱。我也提醒自己indexvalue的數量,看看它是否讀取下拉,我得到正確的數字。但是沒有改變下拉。有什麼想法嗎?謝謝!
它是一個警察,所以我會發布它作爲評論,而不是一個答案。如果你使用jQuery,你的生活將會變得如此簡單。 – profitphp 2011-02-01 04:53:37