如何在没有AJAX的情况下使用json_decode将JSON.stringify转换为PHP


How to get JSON.stringify into PHP with json_decode without AJAX?

说,我有这样的东西

function submitform() {
    var data = JSON.stringify({
        "userdata": $('#user_data').val()
    })
    $('<input type="hidden" name="json"/>').val(data).appendTo('#myform');
    $("#myform").submit();
}

现在在服务器端,我已经尝试了:

json_decode($_POST['json']);
json_decode($_POST['json'], true);
json_decode(htmlspecialchars_decode($_POST['json']), true);

当我在页面上执行var_dump时,所有这些都返回NULL值。

我不是通过 ajax 提交表单,也不想使用 application/json 提交表单,因为表单中还有其他字段需要以正常的表单提交方式提交。

我该怎么做?? 只需要在表单提交时将 json 发送到 php。

可能是魔术引号搞砸了你的 JSON 字符串,PHP 不再识别它。 在将它交给 json_decode() 之前,请使用 stripslashes():

$a = json_decode(stripslashes($_POST['json']));
var_dump($a);