我正在写一个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"]
,但它无效。
答案 0 :(得分:2)
您必须阅读raw post data(打开php://输入流或从$ HTTP_RAW_POST_DATA获取,如果已启用)
答案 1 :(得分:0)
events.php中显示的print_r($_POST)
是什么?
您可能需要这样做:
$postvars=json_decode($_POST); // or $postvars=json_decode($_POST['records']);
echo $postvars['records']['title']; // or echo $postvars['title'];
或类似的。我知道Sencha框架经常编码已发布的变量(虽然通常不是AJAX默认)
答案 2 :(得分:0)
好像你正在发送json数据,所以你应该在尝试访问变量之前使用json_decode()。
答案 3 :(得分:0)
当您从客户端发布json数据时,它会使用content type
application/json
发送请求。如果你dump $_POST
,那么什么都不会显示出来。您需要使用decode
post data
json_decode($_POS['records'])
。然后从解码数组中访问您的数据。
答案 4 :(得分:0)
以下是您要求的PHP
代码:
<?php
$records = json_decode($_POST['records']);
$data = $records->Title
?>
在使用POST
之前,请务必正确清理通过{{1}}发送的任何内容,因为它可以在发送之前进行操作。