У меня есть сценарий 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
на две части Но я получаю неправильный результат. например у нас есть:
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 и данные. может показывать всю таблицу, но в результате обе таблицы показываются внутри одного деления.
Функция успеха 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 лучше
Других решений пока нет …