如何将多个ajax成功分成两个div

时间:2014-09-16 05:07:10

标签: php ajax html-table

我有一个像下面这样的ajax脚本:

$.ajax({
        type:"post",
        url:"process1.php",
        data:params,
        cache :false,
        async :false,
        success : function(res,data) {
              $("#qtycheck").html(res);
              $("#rangecheck").html(data);
              return this;
              }
        });

<div id="qtycheck"></div>
<div id="rangecheck"></div>

我想将res,data分成两个div。但我得错了结果。对于前我们有:

res : 50     // inside table 1
data : 1 - 100  // inside table 2

正确的结果:

<div id="qtycheck">
  <table> ...50...</table>
</div>
<div id="rangecheck">
   <table> ...1 - 100..</table>
</div>

实际:

<div id="qtycheck">
<table> ...50...</table>
<table> ...1 - 100..</table>
</div>
<div id="rangecheck"> success </div>

更新

要明确表来自哪里,这个查询:

$sql= "SELECT .......";
$res=mysql_query($sql) or die(_ERROR26.": ".mysql_error());
$fields_num = mysql_num_fields($res);

echo "<table id ='appear2' border='1' style='border-collapse:collapse;font: 16px/20px Calibri, 
                Arial, Helvetica, sans-serif; background-color:white; ' width='auto'>";
        echo "<tr id='tblhead' style='text-align:center;'>";
        for($i=0; $i<$fields_num; $i++)
        {
                $field = mysql_fetch_field($res);
                echo "<td>{$field->name}</td>";
        }
        echo "</tr>\n";
        while($row = mysql_fetch_row($res))
        {
                echo "<tr>";
                foreach($row as $cell)
                echo "<td>$cell</td>";
                echo "</tr>\n";
        }

$sql= "SELECT .......";
$data=mysql_query($sql) or die(_ERROR26.": ".mysql_error());
$fields_num = mysql_num_fields($data);

echo "<table id ='appear2' border='1' style='border-collapse:collapse;font: 16px/20px Calibri, 
                Arial, Helvetica, sans-serif; background-color:white; ' width='auto'>";
        echo "<tr id='tblhead' style='text-align:center;'>";
        for($i=0; $i<$fields_num; $i++)
        {
                $field = mysql_fetch_field($data);
                echo "<td>{$field->name}</td>";
        }
        echo "</tr>\n";
        while($row = mysql_fetch_row($data))
        {
                echo "<tr>";
                foreach($row as $cell)
                echo "<td>$cell</td>";
                echo "</tr>\n";
        }

此后ajax将获取参数res和数据。所有表都可以显示,但结果是一个div内的表格显示。

1 个答案:

答案 0 :(得分:0)

ajax成功函数传递了三个参数:

Function( PlainObject data, String textStatus, jqXHR jqXHR )

从服务器返回的数据,根据dataType参数格式化;描述状态的字符串;和jqXHR(在jQuery 1.4.x,XMLHttpRequest中)对象

您的ajax请求的结果将是一个字符串,如:<table>...50...</table><table>...1-100...</table>,如您所见。

所以我建议你发送两个ajax请求来获取数据。 如果你必须这样做,你可以这样做:

$("#qtycheck").html(res.substring(0, res.indexOf("<table>",1)));
$("#rangecheck").html(res.substring(res.indexOf("<table>",1)));

但这不是一个好方法。两个ajax请求更好