我有这个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>
答案 0 :(得分:1)
你的HTML错了..
一个页面应具有唯一 ID,并为每个div分配相似的ID origassigned
,因为它始终使用ID=origassigned
捕获第一个div并再次更新该div ;再次..
而不是使用类..或为每个div分配不同的id ..
由于
答案 1 :(得分:0)
您需要为三个选项分别使用名称和ID。这样你的ajax代码就可以处理正在更新的元素。