`
jacky68147527
  • 浏览: 206801 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ext 表单提交的两种方式对比

阅读更多
ext 表单提交的两种方式对比
Ext中的表单数据提交有两种方式:
Ajax提交方式
Form提交方式

Ajax提交方式
function save(){
var pid = field_PId.getValue();//必填字段
var ptid = combo_PtId.getValue();
var creator = field_creator.getValue();//必填字段
var createtime = field_createtime.getValue();//必填字段
var modifier = field_modifier.getValue();//必填字段
var modifytime = field_modifytime.getValue();//必填字段
var orderno = field_orderno.getValue();
var orgcode = field_orgcode.getValue();
var prjno = field_prjno.getValue();
var prjname = field_prjname.getValue();
var prjdscr = field_prjdscr.getValue();
var psd = field_psd.getValue();
var ped = field_ped.getValue();
var asd = field_asd.getValue();
var aed = field_aed.getValue();
var prjpm = field_prjpm.getValue();
var parenetid = field_pid.getValue();
var istrue = combo_istrue.getValue();
var owner = field_owner.getValue();
var ownertel = field_ownertel.getValue();
var owneraddr = field_owneraddr.getValue();
var state = field_state.getValue();
var stage = field_prjstage.getValue();
var dirid = field_dirid.getValue();

var hiddenID = hidden_Id.getValue();

if(validate(pid,"项目ID")&&
   validate(creator,"创建人")&&
   validate(createtime,"创建时间")&&
   validate(modifier,"最后一次修改人")&&
   validate(modifytime,"最后一次修改时间")){
   if(hiddenID==null||hiddenID==""){//add
   Ext.Ajax.request({
//url : contextPath+'/oa/csproject.ext?pmethod=addCsProject',
url : contextPath+'/oa/csproject.ext?pmethod=addCsProject',
pmethod : 'post',
params : {
prjId : pid,//必填字段
creator : creator,//必填字段
createtime : createtime,//必填字段
modifier : modifier,//必填字段
modifytime : modifytime,//必填字段
orderno : orderno,
orgcode : orgcode,
prjCode : prjno,
prjName : prjname,
prjDscr : prjdscr,
prjPlanSd : psd,
prjPlanEd : ped,
prjActualSd : asd,
prjActualEd : aed,
prjPm : prjpm,
parentId : parenetid,
prjIstrue : istrue,
prjOwner : owner,
prjOwnerTel : ownertel,
prjOwnerAddr : owneraddr,
prjState : state,
prjStage : stage,
prjDirId : dirid
},
success : function(response, options) {
var jsonObj = eval(response.responseText);
if (jsonObj.state) {
store_csProject.load();
window_Edit.hide();
}
Ext.Msg.alert("提示", jsonObj.message);
}
});
   }else{//update
   Ext.Ajax.request({
url : contextPath+'/oa/csproject.ext?pmethod=updateCsProject',
pmethod : 'post',
params : {
prjId : pid,//必填字段
creator : creator,//必填字段
createtime : createtime,//必填字段
modifier : modifier,//必填字段
modifytime : modifytime,//必填字段
orderno : orderno,
orgcode : orgcode,
prjCode : prjno,
prjName : prjname,
prjDscr : prjdscr,
prjPlanSd : psd,
prjPlanEd : ped,
prjActualSd : asd,
prjActualEd : aed,
prjPm : prjpm,
parentId : parenetid,
prjIstrue : istrue,
prjOwner : owner,
prjOwnerTel : ownertel,
prjOwnerAddr : owneraddr,
prjState : state,
prjStage : stage,
prjDirId : dirid
},
success : function(response, options) {
var jsonObj = eval(response.responseText);
if (jsonObj.state) {
store_csProject.load();
window_Edit.hide();
}
Ext.Msg.alert("提示", jsonObj.message);
}
});
   }
}
}

Ajax提交方式比较麻烦,提交数据首先的获取到控件里面的内容,然后在以参数的形式传递到后台。其次还有一个问题就是当传递DateField控件里面的数据到后台的时候会出现null值的现象,这主要是因为Ajax的传递机制问题。
他会把时间格式的数据以字符串的形式并且是以URL重写的方式传递到后台,这样在传递过程中,会导致浏览器对时间格式的不识别,从而丢失数据。
再次,如果是要重置表单的话,也需要一个一个控件的进行置空。

所以,我们最好是采用form表单提交的形式进行数据提交。尤其是在提交数据字段很多的时候,会有很大的优势。

在使用Form表单提交的时候,需要注意的地方就是一定要为你的控件添加 name属性!!!!!!!!!

表单提交格式:
if(savePanel.getForm().isValid()){
savePanel.getForm().doAction('submit',{
url : contextPath+'/work/schedule.ext?pmethod=addSchedule',
method : 'post',
params : {
},
success : function(response, action) {
var message = action.result.message;
//Ext.example.Msg(message);
Ext.Msg.alert('提示',message);
},
failure:function(response,action){

}
});
}

关于表单提交的几个重要方法:
表单自动验证 >>>> 表单控件.getForm().isValid();

表单提交 >>>> 表单控件.getForm().doAction(‘submit’);

表单重置 >>>> 表单控件.getForm().reset();

对于表单提交后台返回处理结果的格式:
if(info!=null){
this.write(response, "{'success':true,'message':'增加日程信息成功'}");
}else{
this.write(response, "{'success':false,'message':'增加日程信息失败'}");
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics