从PHP接收JSON请求

时间:2012-07-04 01:39:23

标签: php json extjs4 firebug

在firebug中,在POST标签中,我看到以下内容;

JSON        

textfieldone "Alex"



Source
{"textfieldone :"Alex"}

但是在PARAMS标签中我看到了

_dc 1341332451114

当我print_r($_REQUEST);得到

时,在我的PHP代码中
Array
(
    [_dc] => 1341332451114
)

而不是在POST选项卡中找到的JSON。我怎么能解决这个问题?

我不知道为什么这是hapenning,我试图整天调试

更新PHP代码:

<?php
// Make a MySQL Connection
mysql_connect("localhost", "root", "pwd") or die(mysql_error());
mysql_select_db("db") or die(mysql_error());

print_r($_REQUEST);

在萤火虫中,我在网址下看到上面的回复;

POST http://localhost/proj/php/result.php?_dc=1341332451114 200 OK 107ms

我可以知道?_dc=1341366375982是什么。我正在发送POST

更新2

EXT JS4代码

MODEL

Ext.define ('Mycomp.model.MyClass',{
    extend: 'Ext.data.Model',

    fields:['textfieldone']

});

查看

Ext.define('Mycomp.view.user.MyClassView', {
    extend: 'Ext.window.Window',
    alias: 'widget.myclassview',
    initComponent: function() {
        this.items = [
            {
                xtype: 'form',
                items: [
                    {
                        xtype: 'textfield',
                        name : 'textfieldone',
                        fieldLabel: 'Contact Person Name'
                    }
                ]
            }
        ];
        this.buttons = [
                        {
                            text: 'Save',
                            name:'save',
                            action: 'save'
                        }
                    ];
        this.callParent(arguments);
    }
});

CONTROLLER

Ext.define('Mycomp.controller.MyClass',{
    extend: 'Ext.app.Controller',

    stores:['MyClass'],
    models:['MyClass'],
    views:['MyClassView'],
    init: function(){
        this.control({          
            'myclassview button[action=save]': {
                click: this.myMethod
            }
        });         
        },
         myMethod: function(button, record) {

       var win    = button.up('window'),
           form   = win.down('form'), 
           values = form.getValues(),
           store = this.this.getmyClassStore(),
           model = store.model,
           record = model.create();


           record.set( values );
           store.add( record );
           win.close();
           store.sync(); 
}
});

STORE

Ext.define('Mycomp.store.Myclass',{
    extend:'Ext.data.Store',
    model:'App.model.Myclass',

    proxy: {
        actionMethods : {
            create : 'POST'
        },
        type: 'ajax',
        url : '/savetodb.php'

    }

});

2 个答案:

答案 0 :(得分:2)

我认为您需要设置.php文件头以提供JSON:

header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');

答案 1 :(得分:2)

尝试以下代码,它应该可以解决您的问题:

<?php
   var_dump(json_decode(file_get_contents('php://input')));
?>