0

我的 php 版本是 5.2.17,当我json_decode($_GET['getItem'])返回 null 结果时!!

function getItem(id){
$.getJSON(
    "items.php", 
    { getItem: '{"item": "' + id + '"}'},   
    function(json) {
        $("#"+json.itemName).html(json.itemData);
        }
);

项目.php

header('Content-Type: application/json');
$jItemArray = json_decode($_GET['getItem']);
var_dump($jItemArray);
die;
4

3 回答 3

2

我认为参数将得到 URI 编码。我会输出的值,$_GET['getItem']看看它是什么。我猜你只需urldecode要先运行它,然后再运行json_decode它。

话虽如此......你有理由发送json而不是标准参数编码吗?

于 2012-06-04T11:35:54.973 回答
1

是的,问题出在$_GET['getItem']我发现它的数据不正确,
array(1) { ["getItem"]=> string(18) "{\"item\": \"35\"}" }
并且通过打开它可以完美地 magic quotes工作php.ini

magic_quotes_gpc = Off
谢谢大家指点我

于 2012-06-04T11:56:45.550 回答
-3

你的 php 应该是:

header('Content-Type: application/json');
echo json_encode($_GET['getItem']);
于 2012-06-04T11:33:15.130 回答