Как получить JSON.stringify в PHP с декодированием json без 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);

Все они возвращают значение NULL, когда я делаю var_dump на странице.

Я не отправляю форму через ajax, и я не хочу использовать application/json для отправки формы, потому что в форме есть другие поля, которые необходимо отправить обычным способом отправки формы.

Как я могу это сделать?? Просто нужно отправить json на php при отправке формы.

Author: Solomon Closson, 2016-01-27

1 answers

Вероятно, волшебные кавычки испортили вашу строку JSON, и PHP больше не распознает ее. Используйте полосовые косые черты(), прежде чем передавать его в json_decode():

$a = json_decode(stripslashes($_POST['json']));
var_dump($a);
 1
Author: dkellner, 2016-01-27 17:40:05