0

我正在处理一个表单,我在下拉 onchange 上发送 ajax 调用,一切都很好,但我唯一不明白的是,当我在响应 div 中显示 html(response) 时,所有 tr 和 td 都消失了试图找出原因,但一切都是徒劳的。

id 为 txtHint 的 div 是响应 div,我想<tr>....</tr><tr>....</tr>ajax 响应替换返回我

 <div id='txtHint'>
    <?php while($rows = mysql_fetch_array($select_recrds)){?>            
         <tr>
            <td field="itemid" width="80" sortable="true"><a href=""><?php  echo $rows['ee'];?></a></td>
            <td field="productid" width="100" sortable="true"><?php  echo $rows['ss'];?></td>
            <td field="listprice" width="80" align="right" sortable="true"><?php  echo $rows['cc'];?></td>
            <td field="unitcost" width="80" align="right" sortable="true"><?php  echo $rows['bb'];?></td>
            <td field="status" width="160" align="center"><?php  echo $rows['xx'];?></td>
        </tr>        
   <?php }?>
 </div>

这是ajax响应

 while($row = mysql_fetch_array($result))
 {

       echo  '<tr>';
           echo       '<td field="itemid" width="80" sortable="true"><a href="">'.$row["ee"].'</a></td>';
           echo       '<td field="productid" width="100" sortable="true">'.$row["ss"].'</td>';
           echo       '<td field="listprice" width="80" align="right" sortable="true">'.$row["cc"].'</td>';
           echo       '<td field="unitcost" width="80" align="right" sortable="true">'.$row["bb"].'</td>';
           echo       '<td field="status" width="160" align="center">'.$row["xx"].'</td>';
           echo       '</tr>';
 }

两者看起来都一样,但唯一的区别是它包含的记录,所以不用担心。

当我提醒响应 html 时,它很好,如下图所示:

在此处输入图像描述

但我收到的响应 div 是

  <div id="txtHint"><a href="">12</a>Bolt-Ons2013-09-25 14:28:520000-00-00 00:00:00in progress<a href="">4</a>Bolt-Ons2013-09-25 14:28:470000-00-00 00:00:00in progress</div>

为什么 tr 和 tds 消失了,我该如何解决这个问题?

下面是我的ajax调用

<script>
function showUser(str)
{
    if (str=="")
    {
      document.getElementById("txtHint").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)
      {
        alert(xmlhttp.responseText);
        document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
      }
    }
    xmlhttp.open("GET","filter_data.php?q="+str,true);
    xmlhttp.send();
}
</script>
4

1 回答 1

0

为了帮助您进行调试,请尝试将结果放入如下变量中:

 while($row = mysql_fetch_array($result))
 {

 $var.='<tr>';
 $var.='<td field="itemid" width="80" sortable="true"><a href="">'.$row["order_id"].'</a></td>';
 $var.='<td field="productid" width="100" sortable="true">'.$row["order_type"].'</td>';
 $var.='<td field="listprice" width="80" align="right" sortable="true">'.$row["order_created"].'</td>';
 $var.='<td field="unitcost" width="80" align="right" sortable="true">'.$row["order_updated"].'</td>';
 $var.='<td field="status" width="160" align="center">'.$row["status"].'</td>';
 $var.='</tr>';
 }

之后,制作

mail('yourmail@mail.com', 'test', $var);

并在您的邮件中查看结果。

在您的 Html 代码中,执行以下操作:

<table>
    <tbody id='txtHint'>

    </tbody>
</table>
于 2013-09-25T13:07:53.103 回答