0

如何使用一个 ajax 请求更改 2 个 div?

ajax-update.php

<?php
include("config.inc.php");
include("user.inc.php");
$id = $_GET['id'];
$item = New item($id);
$result = $item->iteminfo;
echo $result->name."<br />";
unset($item); 
?> 

html:

<tr>
<td> (one) </td>

<td><input type="text" value="" onchange="showUser<?php echo $x;?>(this.value)"  style="width:70px;"/></td>

<td><span id="txtHint<?php echo $x;?>"></span></td>

<td><input type="text" value="" name="price_<?php echo $x;?>" id="price_<?php echo $x;?>"  onchange="upperCase<?php echo $x+$h;?>()" style="width:40px;"/></td>

<td><input type="text"  id="proce_<?php echo $x;?>" style="width:70px;" value="<?php echo $x+$h;?>" disabled /></td>

<td><input type="text" value="" name="price_<?php echo $x;?>"   style="width:40px;"/></td>

<td><input type='text' id="totalPrice<?php echo $x;?>" disabled /></td>

</tr>

脚本:

function showUser<?php echo $x;?>(str)
{
if (str=="")
  {
  document.getElementById("txtHint<?php echo $x;?>").innerHTML="";
  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)
    {
    document.getElementById("txtHint<?php echo $x;?>").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","ajax-update.php?id="+str,true);
xmlhttp.send();
}

我的问题是,当我更改此值时

<td><input type="text" value="" onchange="showUser<?php echo $x;?>(this.value)"  style="width:70px;"/></td>

不只是这个td

<td><span id="txtHint<?php echo $x;?>"></span></td>

还有这个 td

    <td><input type="text"  id="proce_<?php echo $x;?>" style="width:70px;" value="<?php echo $x+$h;?>" disabled /></td>

现在我只能动态更改一个 div (txtHint),

对不起我的英语。

注意:我想用不同的文件进行更新,例如当值改变时,这个脚本是 word

xmlhttp.open("GET","ajax-update.php?id="+str,true);

另一个是

foo.php

谢谢

安加

编辑1:

[1] | [2] | [3]

  • [1]:我手动输入值
  • [2] : 这个 span txtHint 使用 ajax 改变
  • [3] :我希望这个更改与 [2] 相同

编辑 2:

document.getElementById("txtHint<?php echo $x;?>").innerHTML=xmlhttp.responseText;
document.getElementById("proce_<?php echo $x;?>").value=xmlhttp.responseText;

那是可行的,但是 [2] 和 [3] 中的值是相同的,因为它取自一个文件 ajax-update.php 如何添加其他文件但仍在一个 ajax 请求中?

4

1 回答 1

1

如果我正确理解您的问题,您想更改第一个元素(SPAN)和第二个元素(INPUT)的文本。

您似乎已经弄清楚的跨度-您使用innerHTML。你写了:

document.getElementById("txtHint<?php echo $x;?>").innerHTML=xmlhttp.responseText;

在此之下...您可以添加

document.getElementById("proce_<?php echo $x;?>").value=xmlhttp.responseText;

然而——你也应该考虑使用 jQuery 来做这种事情。它会为您处理跨浏览器的内容,并使这种编码变得更加简单。您可以执行所有所需的 JSON/XML 请求,并轻松更新各个组件。

于 2013-09-22T15:35:12.653 回答