我有一个像下面这样的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内的表格显示。
答案 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请求更好