【发布时间】:2013-03-29 05:31:33
【问题描述】:
大家好,我真的需要帮助。我将这个 json 对象传递给 php..
var x = {};
x.xt = {};
x.xt.id = id;
x.xt.to = foo;
somearray.push(x);
将对象转换为json:
$.toJSON(x);
json 字符串:
[{"x":{"xt":"9","to":"2"}}]
我发这个:
$.post(
"temp/sop.php",
{ xa: somearray},
function(data){
console.log("response - "+ data);
});
服务器端:
$xtj = $_POST["xa"];
$encodedArray = array_map(utf8_encode, $xtj);
$asnk = json_decode($encodedArray);
这会返回:
string(4) "null"
还有这个:
$asnk = json_encode($xtj);
返回:
null
它设置到的数据库:
UTF8
当我测试它是否是一个数组时,返回 true..
知道如何解决这个问题吗?谢谢
也是服务器端:
$xtj = $_POST["xa"];
$asnk = json_decode($xtj);
返回:
NULL
【问题讨论】:
-
你确定 $_POST["xa"] 是一个数组吗?并且 utf8_encode 应该在引号内,否则 php 会抛出一个通知(或警告)。
-
尝试:
console.log(somearray);就在 $.post 之前,var_dump($_POST['xa');位于 php 文件的开头。 -
如果我回显 POST 我得到这个:[{\"x\":{\"xt\":\"4\",\"to\":\"2\"} }] 和 $.post 之前的控制台是这样的: [{"x":{"xt":"9","to":"2"}}]
-
你想做什么?
sop.php只是应该解码 JSON,将其重新编码为 JSON,然后将其发回还是什么? -
sop.php 它只是解码 JSON 并将数组传递给另一个方法。但它就是这样。它在一台服务器和本地主机上运行良好。但是当我搬到他们的最终服务器时它不起作用..即使它确实具有相同的设置
标签: php javascript ajax json javascript-objects