【发布时间】:2011-07-23 05:23:15
【问题描述】:
我有这个 AJAX 代码:
<script type="text/javascript">
function updateAssigned(assigned , ticketid)
{
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)
{
document.getElementByID('origassigned').innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax_php/assigned.php?assigned=" + assigned + "&ticketid=" + ticketid,true);
xmlhttp.send();
}
</script>
还有这个 HTML
<DIV CLASS="assigned">
<DIV ID="origassigned"></DIV>
<SELECT onChange="updateAssigned(this.value , {$row['ticket']})">
<option>OPTION 1</option>
<option>OPTION 2</option>
</SELECT>
</DIV>
<DIV CLASS="assigned">
<DIV ID="origassigned"></DIV>
<SELECT onChange="updateAssigned(this.value , {$row['ticket']})">
<option>OPTION 1</option>
<option>OPTION 2</option>
</SELECT>
</DIV>
<DIV CLASS="assigned">
<DIV ID="origassigned"></DIV>
<SELECT onChange="updateAssigned(this.value , {$row['ticket']})">
<option>OPTION 1</option>
<option>OPTION 2</option>
</SELECT>
</DIV>
我无法让 AJAX 更新相应的 DIV。它可以完美地更新我的数据库,但即使我正在更新第二个 DIV,也只会更改名为“已分配”的第一个 DIV。
任何想法我应该将我的 AJAX 代码更改为以便识别要更新的 DIV 吗?谢谢!
更新:将 div 更改为不具有相同的 ID 以更符合 Web 标准。仍然不知道如何告诉 AJAX 更新哪个 div。
旁注:这些是从 mySQL 查询结果生成的。每个分组是不同的行。但它们都来自同一个模板。因此,每个组的名称 CLASS 和 ID 必须相同。
<DIV CLASS="assigned">
<DIV CLASS="origassigned" NAME="origassigned"></DIV>
<SELECT onChange="updateAssigned(this.value , {$row['ticket']})">
<option>OPTION 1</option>
<option>OPTION 2</option>
</SELECT>
</DIV>
<DIV CLASS="assigned">
<DIV CLASS="origassigned" NAME="origassigned"></DIV>
<SELECT onChange="updateAssigned(this.value , {$row['ticket']})">
<option>OPTION 1</option>
<option>OPTION 2</option>
</SELECT>
</DIV>
<DIV CLASS="assigned">
<DIV CLASS="origassigned" NAME="origassigned"></DIV>
<SELECT onChange="updateAssigned(this.value , {$row['ticket']})">
<option>OPTION 1</option>
<option>OPTION 2</option>
</SELECT>
</DIV>
【问题讨论】:
-
你能显示实际的 HTML,而不是生成 html 的 php 吗?
-
哪一部分?我在这里展示的唯一 php 是返回 mySQL 查询结果时生成的 ticketid。
-
那么,结果 html 中的 $row['ticket'] 值是什么?
-
同样,选择对象没有 .value 属性。要获取选中的值,需要使用
this.options[this.selectedIndex].value -
实际上 .value 正在工作。我的数据库正在按照我的喜好更新所有数据。我只能在刷新页面之前查看结果..(这就是为什么我尝试使用 AJAX 来更新适当的 DIV 以便我不必刷新页面)