我正在构建一个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的变量。有什么建议?谢谢!
答案 0 :(得分:0)
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);
}
});