Как манипулировать объектами JSON, отправленными $.ajax в PHP

#php #jquery #json #ajax

#php #jquery #json #ajax

Вопрос:

Хорошо, итак, я уже довольно давно пытаюсь найти ответ на этот вопрос, и каждое отдельное решение, похоже, не работает для меня по какой-то причине, в которой я все еще не уверен. Итак, вот мой код $.ajax

 PostData.push({
        "PostRequestType" : "updateBasicInformation",
        "newDisplayNameUser" : FormData[0].value,
        "newUserNameUser" : FormData[1].value,
        "newEmailUser" : FormData[2].value,
        "newSearchRadius" : FormData[3].value,
        "newIsAnonymous" : FormData[4].value
    });

    PostData = JSON.stringify(PostData);

    $.ajax({
        type: "POST",
        url: "./updateUserSettings.php",
        data: {"BasicInformationData" : PostData},
        success: function(result)
        {
            $("#ErrorSection").append(result);

            if(result == "success")
            {
                $("#Form1Status").addClass('success');
                $("#Form1Status").append("Success");
            }
            else
            {
                $("#Form2Status").addClass('failure');
                $("#Form2Status").append("Erreur SQL");
            }
        }

    });
  

и вот этот простой PHP-код, который я пытаюсь выполнить

 $jsonOBJ = json_decode($_POST['BasicInformationData']);

echo $jsonOBJ->newDisplayNameUser;
  

Несколько потоков, похоже, предполагают, что это правильный способ сделать это, но по какой-то причине это, похоже, не дает никакого результата, и я перепробовал несколько вариантов этого кода, я пытался использовать $jsonObj [X] или другие подобные комбинации, но, похоже, пока ничего не сработало.

Итак, я спрашиваю, как мне правильно использовать объект json в PHP?

Комментарии:

1. Идентификатор сбрасывает этот ключ BasicInformationData и просто отправляет сериализованные данные. Имея этот ключ там, вы отправляете данные JSON в виде строки.

2. какова форма вашего параметра на стороне сервера?

3. Для начала, это разумная идея var_dump($_POST) . Это может сузить проблему. Другое дело, если echo $jsonOBJ->newDisplayNameUser не выдает ошибку, то JSON декодируется нормально. В таком случае причиной отсутствия эха может быть то, что $jsonOBJ->newDisplayNameUser имеет пустое значение. Попробуйте сделать var_dump($jsonOBJ->newDisplayNameUser) , это даст вам больше информации, чем echo .