将JSON传递给PHP后解码

时间:2011-07-14 01:47:21

标签: php ajax json

在PHP中解析JSON

我的变量jsonvar采用{“rating”:“good”}

的形式

一旦我用这个$ .ajax代码提交它,我对我的PHP(jsonproc.php)应该是什么感觉有点困惑。

$.ajax({
                url: 'jsonproc.php',
                data: {js:jsonvar},
                dataType: 'json',
                type: 'post',
                success: function (j) {
                        if (j.ok){
                            alert(j.msg);
                        } else {
                            alert(j.msg);
                        }
                    }
                });

我把它设置为

$decoded = $_GET['js'];
$response = array(
   'ok' => true, 
   'msg' => $decoded['rating']);

然而,当我回复它时,

   echo json_encode($response);

使用alert(j.msg)显示“null”值。

假设我正确传递JSON,我如何指向评级并获得“好”的值?

由于

修改

已解决,使用$ _REQUEST我能够获得JSON,但$ _GET无效。

此外,关键是使用$ decoding-> {'rating'}因为$ decode不再仅仅是一个我不认为的数组,或者它是一个不同的diff类型?

2 个答案:

答案 0 :(得分:3)

看起来你在这里混合数据类型:

 data: "js="+jsonvar,

如果传递一个对象,jQuery将转换JSON,但是你将查询字符串与JSON混合。

尝试:

data: {js: jsonvar},

你可能还需要做json_decode($ _ GET ['js'])。

编辑:您可以使用Firebug / Web Inspector仔细检查jQuery正在POST的内容。最容易确定的方法。

答案 1 :(得分:-2)

尝试将其添加到PHP文件的顶部:

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