日期:2014-05-16 浏览次数:20511 次
1、一般分为“form的submit提交”、“单独Ajax提交”
?
formname.form.submit({ url : '', method : 'POST', waitMsg:'正在保存数据,请等待...', success : function(form, action) { }, failure : function(form, action) { } }); Ext.Ajax.request({ url : '', method : 'POST', success : function(result, request) { }, failure : function(form, action) { } });
?
2、相关问题及解决方法
(1)问题点:?单独Ajax提交方式,只要能够提交到后台不管数据能否正确执行就回调success函数,如果网络有故障,或者页面有错误数据到不了后台,就执行failure函数。而我们一般要求是:数据处理成功后显示成功信息,失败后显示失败信息。
?
如:后台返回结果:
{success:true} {success:false,errors:connect}
?
?
(2)解决:在js页面中的success函数中取得返回值,我们对返回值进行判断,如果success是true我门就打印成功信息,如果success是false我们就打印失败的提示。
?
(3)从后台取得返回值:var responseArray = Ext.util.JSON.decode(response.responseText);
?
说明:Ext.util.JSON.decode()功能是将json字符串转成对象。相反的还有encode是将对象转成json字符串。
?
(4)代码示例
handler: function() { Ext.Msg.wait('处理中,请稍后...', '提示'); //进度条等待 Ext.Ajax.request({ async : false,//同步 url: 'upload/test.do', success:function(response, options){ //隐藏进度条 Ext.Msg.hide(); //将json数据字符串转变为对象 var responseArray = Ext.util.JSON.decode(response.responseText); //成功 if(responseArray.success==true){ Ext.example.msg('成功', ' 上传成功 '); }else{ //失败的几种返回情况 if(responseArray.errors == 'connect') Ext.MessageBox.show({title: '失败',msg: '连接中心服务器失败,请检查网络配置!',buttons: Ext.MessageBox.OK,icon: Ext.MessageBox.ERROR}); else if(responseArray.errors == 'server') Ext.MessageBox.show({title: '失败',msg: '服务器错误,上传失败!',buttons: Ext.MessageBox.OK,icon: Ext.MessageBox.ERROR}); else Ext.MessageBox.show({title: '失败',msg: '上传失败',buttons: Ext.MessageBox.OK,icon: Ext.MessageBox.ERROR}); } }, failure:function(response,options){ Ext.Msg.hide(); Ext.MessageBox.show({title: '失败',msg: '上传失败',buttons: Ext.MessageBox.OK,icon: Ext.MessageBox.ERROR}); } }); }
?
?
?