Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 让ajax更新mySQL行结果中相应的div_Php_Mysql_Ajax - Fatal编程技术网

Php 让ajax更新mySQL行结果中相应的div

Php 让ajax更新mySQL行结果中相应的div,php,mysql,ajax,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 Activ

我有以下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>

函数更新已签名(已分配,ticketid)
{
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementByID('origassigned')。innerHTML=xmlhttp.responseText;
}
} 
open(“GET”、“ajax\u php/assigned.php?assigned=“+assigned+”&ticketid=“+ticketid,true”);
xmlhttp.send();
}
这个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>

选择1
选择2
选择1
选择2
选择1
选择2
我无法让AJAX更新相应的DIV。它可以完美地更新我的数据库,但只更改名为“assigned”的第一个DIV,即使我正在更新第二个DIV

有什么想法我应该改变我的AJAX代码,以便它能够识别要更新的DIV吗?谢谢

更新:将div更改为不具有相同的id,以更符合web。仍然不知道如何告诉AJAX更新哪个div。
旁注:这些是从mySQL查询结果生成的。每个分组都是不同的行。但它们都来自同一个模板。因此,每个组上的名称、类和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>

选择1
选择2
选择1
选择2
选择1
选择2
您的HTML错误

一个页面应该有唯一的ID,您为每个div分配类似的ID
origassigned
,因为它总是用
ID=origassigned
捕获第一个div,并再次更新该div。。 而不是使用类。。或为每个分区分配不同的id


谢谢

对于这三个选项,您需要有单独的名称和ID。这样,您的ajax代码可以处理正在更新的元素。

您可以显示实际的HTML,而不是生成HTML的php吗?针对哪一部分?我在这里展示的唯一一个php是针对返回mySQL查询结果时生成的ticketid。那么,结果html中的$row['ticket']值是什么?另外,select对象没有.value属性。要获取选定的值,您需要使用
this.options[this.selectedIndex].value
实际上。值正在工作。我的数据库正在更新我喜欢的所有数据。在刷新页面之前,我可以一直查看结果(这就是为什么我尝试使用AJAX更新适当的DIV,这样我就不必刷新页面)我的问题是,DIV“assigned”和DIV“origassigned”是从mySQL查询结果生成的。每个组都返回行结果。我不能给他们唯一的ID名。即使我把他们改成班级。。没有getElementByClass属性,那么我该如何选择div呢?在页面上分配相同的id实际上是错误的。但是如果这是您的约束,那么您可以分配
name
属性并通过
getElementsByName
获取数据。记住函数中有一个
s
,这是个好主意,我会尝试一下。这将使我达到标准,但我仍然不知道如何告诉AJAX更新哪个DIV。因为他们会有相同的名字。