这个json必须工作什么?

时间:2012-10-31 04:57:50

标签: php javascript jquery json

嗨我搜索很多从PHP回来得到一个respone,如果该respone是好的做一些,如果它的错误做其他事情(!!!!!!!! WHENE我有其他输出从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
?>
谢谢:(

1 个答案:

答案 0 :(得分:3)

  

为什么这不起作用我得到警报(错误:未分解)

你必须告诉jQuery响应是JSON。您可以将'json'作为第四个参数传递给$.post [docs],或者在PHP中设置正确的响应头:

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

或者,您可以使用jQuery.parseJSON [docs]自行解析回复。

  

当我有这样的其他输出

时,如何从该php文件中获得一些结果

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