我对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