AJAX它没有从php文件中接收数据

时间:2017-04-23 09:05:40

标签: php jquery json ajax

我正在尝试通过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";
}

请提供一些帮助。感谢您将来的帮助。

2 个答案:

答案 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'];
    }
});