Sencha Touch代理使用动态参数发送post请求

时间:2014-10-18 02:16:50

标签: sencha-touch sencha-touch-2

我想在sencha touch中发送post请求,并且我要发布的参数是动态的,即我想将textField值作为要发布的参数。请帮帮我

proxy: {
     type: "ajax",
        url:'http://anotherserver.com/query.php',
        method:'post',
    extraParams: {
        val: "TextField1.Text" // **here I want to provide the value of the textField help me plz**
    },
    reader: {
        type: "json",
        rootProperty: "notes",
        totalProperty: "total"
    }
},

2 个答案:

答案 0 :(得分:1)

首先查看Sencha Touch模型概念,因为您可以将模型标记到表单(Ext.FormPanel)中并将其视为一个。

var model = Ext.create('Ext.data.Model',{
    fields: ['name', 'email', 'password'],
    proxy: [] //your proxy settings here,
    customFunctionWithAjax: function(){
    }

});

var form = Ext.create('Ext.form.Panel', {
    fullscreen: true,
    items: [
        {
            xtype: 'textfield',
            name: 'name',
            label: 'Name'
        },
        {
            xtype: 'emailfield',
            name: 'email',
            label: 'Email'
        },
        {
            xtype: 'passwordfield',
            name: 'password',
            label: 'Password'
        }
    ]
});
//after filling up your form you can get all textfields value 
//with .getValues() and set it to your model

model.setData(form.getValues);  
//then you can do anything you want like SAVE, or update
model.save();
//or call your custom function with your customised ajax request
model.customFunctionWithAjax(); 
// you can also check if your data are correct before sending it using .validate();
model.validate(); 

答案 1 :(得分:0)

通常您希望将文本字段包装在表单(formpanel)中。 然后你可以使用

var form = Ext.Viewport.down('.formpanel'),
    values = form.getValues(),
    textfieldValue = values.textfield_name;
...
extraParams: {
    val: textfieldValue
},