Как мне более эффективно работать с JS объектами в PHP? - PullRequest
1 голос
/ 07 августа 2020

У меня есть кнопка onclick, которая отправляет объект JS в мой PHP через следующий AJAX (данные - это имя моего объекта):

function send_to_php() {
$(document).ready(function() {
// pt_packet = JSON.stringify(data)
console.log(data)
var request = $.ajax({
    url: "post_results.php",
    type: 'POST',
    data: (data),
    success: function(result) {
    $("#note").append(result)}})
})}

Проблема в том, когда я попробуйте очистить данные, я получаю var_dump, это только первый массив, а остальная информация пропала:

array(1) { ["{"Cheif_Complaint":"]=> array(1) { [""Mood issues""]=> string(0) "" } }

Тем не менее, это информация, которую я отправляю: Мой JS объект

Я отказался от попыток дезинфицировать данные, но теперь похоже, что мне нужно var_export каждый отдельный массив, а затем использовать RegEx, чтобы избавиться от "array => (" материала, который Я остался с var_export. Нет более простого способа отправить объект JS и работать с ним в PHP?

1 Ответ

2 голосов
/ 07 августа 2020

В вашей закомментированной строке у вас была правильная идея преобразования объекта в строку JSON. Вот как вы должны сделать запрос

$.ajax({
    url: 'post_results.php',
    type: 'POST',
    data: JSON.stringify(data),
    contentType: 'application/json'
})

В вашем PHP скрипте post_results.php вам нужно прочитать необработанное тело запроса POST. Вы можете сделать это, прочитав PHP входной поток php://input и затем декодировав необработанную строку JSON. Вот пример

$rawJsonString = file_get_contents("php://input");
$jsonData      = json_decode($rawJsonString, true);

Результат должен быть в $jsonData, чтобы иметь ту же структуру, что и ваш объект JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...