【发布时间】:2011-02-01 04:47:35
【问题描述】:
我对 AJAX 不是很精通,但从各方面来说,我认为这应该可行。 它应该做的是用户从下拉列表中选择一个名称,另一个下拉列表(使用 PHP 从 mysql 数据库填充)自动选择关联的对象。所以假设你有:
姓名:苏西/迈克尔/凯伦
最喜欢的水果:苹果/橙子/芒果/番石榴
选择 Susie,它会自动选择“Orange”,因为这是她在数据库中最喜欢的水果。
我有这段代码让 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,你的生活会轻松很多。
标签: php javascript mysql ajax