获取ajax来更新mySQL行结果中的相应div

时间:2011-07-22 20:52:34

标签: php mysql ajax

我有这个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>

2 个答案:

答案 0 :(得分:1)

你的HTML错了..

一个页面应具有唯一 ID,并为每个div分配相似的ID origassigned,因为它始终使用ID=origassigned捕获第一个div并再次更新该div ;再次.. 而不是使用类..或为每个div分配不同的id ..

由于

答案 1 :(得分:0)

您需要为三个选项分别使用名称和ID。这样你的ajax代码就可以处理正在更新的元素。