-4

嗨,我搜索了很多从 php 返回的响应,如果该响应可以做某事,如果它的错误做其他事情(!!!!!!!!!当我从那个 PHP 获得其他输出时!!!!!!)这是我的索引文件

<head>
<script src="jquery-1.7.2.js" type="text/javascript"></script>
<script src="js.js" type="text/javascript"></script>
</head>
<body>
<p> click </p>
<input type="text" id="who">
<br>
<input type="text" id="why">
<div id="bg" align="center">
</div>
</body>

这是我的 JS 文件

$(document).ready(function(){
    $('p').click(function(){
        var who = $('input#who').val();
        var why = $('input#why').val();     
        $.post('file.php',{who:who,why:why},function(data) {
    if(data.success){
         alert(data.message);
    }
    else{ alert('ERROR:' + data.message);
    }
});




    });
});

这是我的file.php

<?php
$response = array('success' => 'true', 
    'code' => "jQuery('#bg').html('\"Javascript\", \"json\", \"PHP\"');");
echo json_encode($response);
?>

我的问题:1-为什么这不起作用我收到警报(错误:未定义)2-当它有其他输出时,我如何从该 php 文件中获得一些结果:

<?php
echo "1";
echo "2";
echo "3";
and now echo that json
?>

谢谢 :(

4

1 回答 1

3

为什么这不起作用我收到警报(错误:未定义)

你必须告诉 jQuery 响应是 JSON。您可以通过'json'作为第四参数传递给$.post [docs]或通过在 PHP 中设置正确的响应标头来做到这一点:

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

或者,您可以使用jQuery.parseJSON [docs]自己解析响应。

当它有像这样的其他输出时,我如何从该 php 文件中获得一些结果

没有简单的方法。响应不再是有效的 JSON,因此您必须以某种方式自己解析它。您应该避免这样做并将所有内容都返回为 JSON。

于 2012-10-31T05:11:56.893 回答