Php Sencha Touch FormPanel中的HTTP请求有效负载

Php Sencha Touch FormPanel中的HTTP请求有效负载,php,http,post,request,extjs,Php,Http,Post,Request,Extjs,我正在写一个senchatouch应用程序。我有一个FormPanel,它向服务器发送POST请求,请求负载如下 { "records": [ { "Id": 0, "Picture": "", "PostedOn": "Wed Oct 05 2011 16:06:28 GMT+0600 (QYZT)", "OccurringOn": "Wed Oct 05 2011 16:0

我正在写一个senchatouch应用程序。我有一个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,我应该如何在服务器端获取这些数据?我目前正在尝试使用
$\u POST[“Title”]
,但它不起作用。

您必须阅读(打开php://input 流式传输或从$HTTP\u RAW\u POST\u数据获取(如果已启用)

events.php中的
打印($\u POST)
显示了什么

您可能需要执行以下操作:

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

或类似的。我知道Sencha框架经常对发布的变量进行编码(虽然通常不是AJAX的默认值)

似乎您正在发送json数据,所以您应该使用json_decode()在尝试访问变量之前,在它上面。

当您从客户端发布json数据时,它会使用
内容类型
应用程序/json
发送请求。因此,如果您
转储$\u POST
,则不会显示任何内容。您需要使用
json\u decode($\u POS['records'])
对数据进行
post
解码。然后从解码的数组中访问数据。

以下是您要求的
PHP
代码:

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


在处理通过
POST
发送的任何内容之前,请确保对其进行适当的清理,因为在发送之前可以对其进行操作。

如何在events.php中传递该数据?是否使用Fiddler捕获请求?如果是的话,请在这里发布。发送请求的是Sencha Touch应用程序的FormPanel。我用chrome Firebug查看请求并从那里复制了请求负载。伙计,你真是个天才!我收到了数据!这是脚本发送变量后返回的结果吗?如果是这种情况,则不会发出POST请求。您确定表单设置为POST而不是GET吗?如果($_SERVER[“REQUEST\u METHOD”]=“POST”)为true
json\u decode
,则根据文档返回:“……在适当的PHP类型中以json编码的值。”这种情况下看起来像一个对象。只是为了正确地引用它,以便从中获取所需的数据。