2017-04-23 45 views
0

我想通过ajax发送一些值,并在test.php中处理后,发回数据以使用。AJAX它没有收到从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"; 
} 

请一些需要帮助。感谢您的未来帮助。

回答

1

您的成功功能是错误的。参数data将包含您的PHP脚本的所有输出。您不能通过在函数定义中使用不同的参数来自动分割输出。

​​

检查你的控制台,你会看到你的数据。

你可能想改变你的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

,你必须在一个语句返回的所有数据在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']; 
    } 
});