php - javascript 对象到 json 字符串到 php 数组 -> POST

标签 php javascript ajax json javascript-objects

嘿伙计们,我真的需要帮助。我将这个 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

最佳答案

$.toJSON(x) 不会就地进行转换;它返回 JSON,而您只是丢弃它。你需要这个:

$.post(
    "temp/sop.php",
    { xa: $.toJSON(somearray) },
    // ...
});

然后,在 PHP 端,您不需要 array_map,因为在您解码 JSON 之前它不会是一个数组:

$xtj = $_POST["xa"];
$encodedArray = utf8_encode($xtj);  // I'm not sure you need this, by the way.
$asnk = json_decode($encodedArray);

关于php - javascript 对象到 json 字符串到 php 数组 -> POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15856997/

相关文章:

PHP:从 MySQL 创建数组以构建 HTML 日历

mysql - PHP 错误 : Maximum function nesting level of '100' reached, 中止

php - 具有多个选项的 Mysql 产品过滤器

javascript - 我怎样才能访问倒数第二个 child ?

php - AJAX PHP-加载前一个插入的记录而不是第一个

javascript - 如何混合使用 Socket.io 和 AJAX

php - 如何在一个表中显示多行,而在另一个表中的一行显示为单行

javascript - ASCII 是什么基数?

c# - 从另一个 C# 类在 HTML 中嵌入变量

javascript - AJAX 传递变量问题