Полезная нагрузка HTTP-запроса в Sencha Touch FormPanel - PullRequest
1 голос
/ 05 октября 2011

Я пишу приложение Sencha Touch. У меня есть FormPanel, которая отправляет запрос POST на сервер с запросом полезной нагрузки следующим образом.

{
    "records": [
        {
            "Id": 0,
            "Picture": "",
            "PostedOn": "Wed Oct 05 2011 16:06:28 GMT+0600 (QYZT)",
            "OccurringOn": "Wed Oct 05 2011 16:06:28 GMT+0600 (QYZT)",
            "Title": "Test",
            "Organiser": "Umair",
            "Details": "This is test."
        }
    ]
}

Как я могу получить эти данные на стороне сервера, если они размещены в Events.php? В настоящее время я пытаюсь $_POST["Title"], но он не работает.

Ответы [ 5 ]

2 голосов
/ 05 октября 2011

Вы должны прочитать необработанные данные поста (либо открыть поток ввода php: //, либо получить из $ HTTP_RAW_POST_DATA, если он включен)

0 голосов
/ 21 октября 2012

Вот код PHP, который вы просили:

<?php
    $records = json_decode($_POST['records']);
    $data = $records->Title
?>

Обязательно правильно очистите все, что отправлено через POST, хотя, прежде чем что-то делать с ним, его можно манипулировать, прежде чем отправить.

0 голосов
/ 25 мая 2012

Когда вы публикуете данные json с вашего клиента, он отправляет запрос с content type application/json. Так что ничего не покажет, если вы dump $_POST. Вам нужно decode post data, используя json_decode($_POS['records']). затем получить доступ к вашим данным из декодированного массива.

0 голосов
/ 05 октября 2011

Похоже, что вы отправляете данные json, поэтому вы должны использовать json_decode () для них перед попыткой доступа к переменным.

0 голосов
/ 05 октября 2011

Что показывает print_r($_POST) в events.php?

Возможно, вам понадобится:

$postvars=json_decode($_POST); // or $postvars=json_decode($_POST['records']);
echo $postvars['records']['title']; // or echo $postvars['title'];

или аналогичный. Мне известно, что платформы Sencha часто кодируют опубликованные переменные (хотя обычно это не AJAX по умолчанию)

...