我正在尝试通过ajax发送一些值,并在test.php中处理后,将数据发送回来使用。
数据库部分是正确的。我的问题在于重新发送数据: Json编码部分没有给出错误,但是当我尝试检查数据时,其中很多都没有出现。
我认为这可能是由以下原因造成的:
我重新发送数据的方式;
我编码Json的方式。
我的代码。
ajax main.php:
$('#filtro_limit1').val(num_Limite_rows);
$.ajax({
url: teste.php,
type:'post',
data:
{
limite: num_Limite_rows,
tipologia: tipologia_val,
ordenar_por: ordenar_por_val
},
success: function(data, num_rows, num_actual_rows, mensagem_erro)
{
}
});
PHP teste.php:
if(pg_num_rows($result1) > 0)
{
$data = array[];
$data = $result1;
$out = array_values($data);
echo json_encode($out);
echo pg_num_rows($result1);
echo $filtro_limit;
echo "Não existem erros";
}
else
{
$data = array[];
echo json_encode($data);
$numero_rows = 0;
echo $total_rows;
echo $filtro_limit;
echo "Não existem valores a serem mostrados";
}
请提供一些帮助。感谢您将来的帮助。
答案 0 :(得分:1)
你的成功功能是错误的。参数data
将包含php脚本的所有输出。您无法使用函数定义中的不同参数自动拆分输出。
function success(data, textStatus, jgXHR) {
console.log(data);
}
检查您的控制台,您将看到您的数据。
您可能想要更改您的PHP代码:
$result = [
'out' => json_encode($out),
'result1' => pg_num_rows($result1),
'filtro_limit' => $filtro_limit,
'message' => "Não existem erros",
]
echo json_encode($result);
exit;
和
$result = [
'total_rows' => $total_rows,
'filtro_limit' => $filtro_limit,
'message' => "Não existem valores a serem mostrados",
];
echo json_encode($result);
exit;
这样,您可以更轻松地在JavaScript中解析数据。例如:
function success(data, textStatus, jgXHR) {
var message = data.message;
}
答案 1 :(得分:1)
你必须在php中的一个语句中返回所有数据,如下所示:
echo json_encode(array(
'out'=>$out,
'num_rows'=>pg_num_rows($result1),
'filtro_limit'=>$filtro_limit,
'msg'=>"Não existem valores a serem mostrados"
));
和像这样的ajax代码:
$('#filtro_limit1').val(num_Limite_rows);
$.ajax({
url: 'teste.php',
type:'post',
dataType: 'json',
data:
{
limite: num_Limite_rows,
tipologia: tipologia_val,
ordenar_por: ordenar_por_val
},
success: function(data)
{
$num_rows=data['num_rows'];
}
});