如何从Ext.Ajax.request中的多个表单发送值?

时间:2011-06-04 23:40:23

标签: ajax extjs

我有多个表单,我希望在一次Ext.Ajax.request调用中传递所有表单中的值。我怎么能这样做?

var forme1 = this.form1.getForm().getFieldValues();
var forme2 = this.form2.getForm().getFieldValues();
var forme3 = this.form3.getForm().getFieldValues();
var forme=new Array(forme1,forme2,forme3);
Ext.Ajax.request(
    {
        url: 'save.php',
        params: forme
    });

3 个答案:

答案 0 :(得分:4)

使用Ext.apply将表单值对象合并在一起:

var values = this.form1.getForm().getFieldValues();
Ext.apply(values, this.form2.getForm().getFieldValues());
Ext.apply(values, this.form3.getForm().getFieldValues());

Ext.Ajax.request({
    url: 'save.php',
    params: values
});

答案 1 :(得分:1)

我只想使用一个对象

var forme1 = this.form1.getForm().getFieldValues();
var forme2 = this.form2.getForm().getFieldValues();
var forme3 = this.form3.getForm().getFieldValues();
var forme  = Ext.Object.merge(forme1,forme2,forme3);

Ext.Ajax.request(
    {
        url: 'save.php',
        params: forme
    });

答案 2 :(得分:0)

如果需要在单个请求中提交所有值,我会使用具有多个字段集的单个FormPanel。这样Ext就可以为你做很多工作。

否则你需要做这样的事情。

Ext.Ajax.request({
    url: 'SomeUrl',
    params: Ext.encode({
        formData1: myForm1.getValues(),
        formData2: myForm2.getValues(),
        formData3: myForm3.getValues(),
    }),
    method: 'POST'
    ...
})
相关问题