从PHP获取JSON输出与PHP输出对齐(如print()等)

时间:2015-01-04 16:25:05

标签: php jquery ajax json

我正在构建一个PHP应用程序。我需要对PHP脚本执行ajax调用,该脚本重新输入HTML代码。但是,我还需要接收一个变量以及PHP输出。我试图用JSON实现这一点,但是我得到了PHP输出或只有JSON数据。当我使用dataType:' json'在我的ajax电话中:

$.ajax({
   url: 'script.php',
   method: 'POST',
   dataType: 'json'
   success: function(returnData){
      $('body').append(returnData);
      alert(returnData.num);
   }
});

我无法从“回声”中获得输出。在PHP脚本中:

<?php
echo 'Hello World';
echo json_encode(array('num' => 11));
?>

所以,我在jQuery ajax调用中需要的是接收&#39; Hello World&#39;作为PHP输出并将其附加到正文然后获取数字#39;来自JSON的变量。有什么建议?谢谢!

3 个答案:

答案 0 :(得分:0)

PHP中的

  

echo json_encode(array(&#39; num&#39; =&gt; 11,&#39; text&#39; =&gt;&#39; Hello World&#39;));

在ajax中:

   success: function(returnData){
      $('body').append(returnData.text);
      alert(returnData.num);
     }

答案 1 :(得分:0)

您不能同时解析两者 - 您最好的选择是将HTML输出作为JSON输出的一部分。这是一个例子:

<?php
echo json_encode(array('num' => 11, 'html' => 'Hello World!'));

答案 2 :(得分:0)

回应JSON以外的任何东西都会破坏你的JSON,你应该把任何预期的输出/数据放在你的JSON中。

<?php
header('Content-Type: application/json');

$json = array(
    'hello' => 'Hello World', 
    'num' => 11
);

echo json_encode($json);
?>

然后在你的jquery中,

$.ajax({
   url: 'script.php',
   method: 'POST',
   dataType: 'json'
   success: function(returnData){
        //your hello world string
        $('body').append(returnData.hello);
        //your num
        alert(returnData.num);
   }
});