今天做项目中的登录,需要用到form表单的数据提交,网上看资料找了一天,简单的了解了下几种不同的数据提交方式。
以下只列出当点击表单提交按钮后,所执行的操作。
第一种是通过单独的ajax提交
//表单提交按钮点击后所执行的方法
var btnsubmitclick = function (){
if (form.getForm().isValid()){ //表单的验证已经通过
Ext.Msg.wait('提示','正在处理,请稍后...'); //提交的适合显示进度条等待
Ext.Ajax.request({ //通过ajax方式提交
//async:false,
url:'a.php', //目标
params:{ //提交的参数
username:Ext.get('username').dom.value, //通过id获取各个文本域的值
password:Ext.get('password').dom.value,
},
/*在ajax中,success和failure的条件是和后台的逻辑处理无关的,响应成功就是success,
响应失败就是failure,因此为了让success后根据后台的响应做出不同的处理,可以给后台
响应数据加个success,然后判断是true/false来做出相应的操作.
*/
success:function(response,options){ //响应成功以后执行的操作
Ext.Msg.hide(); //先隐藏掉进度条
var res=Ext.decode(response.responseText); //获取响应的内容并把json字符串转换成json对象
if(res.success==true){
alert('成功!');
}else{
alert('失败!');
}
},
});
}
}
第二种是通过表单自带的ajax,用submit()提交
//提交按钮处理方法
var btnsubmitclick = function () {
if (form.getForm().isValid()) {
form.getForm().submit({ //不能直接用form,因为它只是个form面板,要通过getForm()获取它下面的form表单
url:'./index.php/Index/check',
/*
这里的success和failure与后台的逻辑业务有关,当返回的success:ture时执行success函数
当为非true时,且包含error:{}则是业务错误
*/
success:function(form,action){ //form表示传入的表单,action表示Ext.form.Action对象用来取得服务器端传过来的json数据
Ext.Msg.alert('信息',action.result.msg); //action.result相当于获取responseText再转换成json对象
},
failure:function(){
Ext.Msg.alert('Error',action.result.msg);
}
});
}
}
第三种方式是用HTML原始的方式提交
//这种方式,把表单的数据直接提交到a.php页面,并且跳转到a.php页面
var btnsubmitclick = function (){
if(form.getForm().isValid()){
form.getForm().getEl().dom.action='a.php';
form.getForm().getEl().dom.submit();
}
}