博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Extjs中三种不同的数据提交方式
阅读量:2783 次
发布时间:2019-05-13

本文共 2913 字,大约阅读时间需要 9 分钟。

Extjs中三种不同的数据提交方式

 

Extjs的三种提交方式:

表单Ajax提交,普通提交,单独Ajax提交;

1.表单ajax提交(默认提交方式)

提交函数:当按下表单中的提交按钮时执行下面的btn函数,按照表单的name进行提交。提交数据后根据后台的返回值不同来回调success或者failure函数(和单独ajax的提交不同),后台返回值的形式:

【如果返回outputResult(“{success:true}”),则调用success的函数。如果返回:outputResult(“{success:false,reason:’”+e.getCause() +”‘}”); 则调用failure函数】

function btn (){

form.getForm.submit({

method:’POST’,

params:{}, // 传递的参数

url:save_url, // 定义要跳转的url,此为属性必须要有

success: function(form,action){

//Ext.Msg.alert(‘信息’,”提示:”+”response.responseText”);//加粗体是得到后台的具体返回信息。

Ext.Msg.alert(‘提示’,”数据修改成功”);// 成功提示信息

store.load(); // 重新加载数据

},

failure:function(form,action){

Ext.Msg.alert(‘提示’,”跳转失败”);

}

});

}

2.普通提交:按照表单中的name提交。

Form. = new Ext.FormPanel({

……..// form的属性

submit:function(){

this.getEl().dom.action =’url’;// 提交的url

this.getEl().dom.method = ‘post’;

this.getEl().dom.submit();

},

});

当按提交按钮时,执行下面函数:

function btn (){

Form.form.submit();

}

3.extjs的普通ajax提交:

当按下提交按钮是执行次函数:(注意:不能对form表单提交,也就是说也不能按form中的表单的name提交,只能提交params中的参数。只要能够提交到后台不管数据能否正确执行就回调success函数,如果网络有故障,或者页面有错误数据到不了后台,就执行failure函数。

后台返回值的形式:【如果数据处理成功返回outputResult(“{success:true,’……..’}”)。如果数据处理失败返回:outputResult(“{success:false,reason:’”+e.getCause() +”‘}”);】

我们一般要求是:数据处理成功后显示成功信息,失败后显示失败信息。

但是这种提交不管返回什么值,都会执行success函数。所以不能满足我们的要求。为了解决这个矛盾我们有一下方法:

我们在js页面中的success函数中取得返回值,我们对返回值进行判断,如果success是true我门就打印成功信息,如果success是false我们就打印失败的提示。

取得返回值:var responseArray = Ext.util.JSON.decode(response.responseText); 判断如下:

function btn(){

…..// 定义url,也可以在方法外面

Ext.Ajax.request({

url:url,// 要跳转的url,此为属性必须要有

method:’post’,

params:{}, // 提交参数

success: function(response, options)

{

var responseArray = Ext.util.JSON.decode(response.responseText);

if(responseArray.success==true)

{

1.表单ajax提交(默认提交方式)

另附1:

]

博主注:这里的error未查明是否是保留的属性,不过在从服务器返回的json字符串可以包含任意定义的键值对:例如       Response.Write("{success:false,  data111: { first: 'tom', last: 'king', company: 'microsoft', email: 'czclkg@21cn.com', time: '10:00am' }}");

前台:

buttons: [{                   text: 'submit',                   handler: function () {                       frm.getForm().submit({                           //method1:                           // url: 'jsonresponse.aspx?userName=chen&pwd=123',                                                                             //method2:说明,这里通过method设为get,则url中指定的参数将失效(如method1中userName和pwd),表单项转换成url中的key=value传递给服务端                            url: 'jsonresponse.aspx',                              method: 'get',                              params: {userName:'chen',pwd:'123'},                           success: function (f, a) {                               Ext.Msg.alert('Success', 'It worked');                           },                           failure: function (f, a) {                               Ext.Msg.alert('Warning', a.result.data111.first);                           }                       });                   }               }]
是可以接收到data111的

附2:

3.extjs的普通ajax提交:

你可能感兴趣的文章
系统一定要做成中台吗?
查看>>
MySQL server has gone away
查看>>
SQL Server2005中删除重复行
查看>>
为什么说OpenSocial只不过是一个公关骗局?
查看>>
memcache分析调试
查看>>
Google Chrome,太快了,有些不适应
查看>>
think in baidu
查看>>
疯狂的程序员75
查看>>
说说我对北京 深圳 上海 三处IT的感觉
查看>>
Google 的疯狂面试题(zz)
查看>>
中国人该懂的知识
查看>>
求非常超难的进度表存储过程
查看>>
消灭误区:男人护肤保养的五宗罪
查看>>
JAVA里面如何让一个线程死亡或结束
查看>>
从 PHP 一道测试题说起
查看>>
Javascript事件监听
查看>>
白领GG一天的工作生活
查看>>
站长如何面对国际金融危机
查看>>
CRM下午茶(五)-销售成熟度与CRM
查看>>
走出软件作坊(四十四)(四十五)(四十六)(四十七)(四十八)(四十九)
查看>>