运用extjs技术进行form表单数据交互

运用extjs技术,从后台取出数据,自动填充到form表单里面,然后根据修改值在存储到数据库中。
运用到ajax交互技术,进行json格式数组的返回。
具体代码如下:

js代码:
Ext.BLANK_IMAGE_URL = basePath + 'ext/resources/images/default/s.gif';
Ext.SSL_SECURE_URL = basePath + 'ext/resources/images/default/s.gif';
var baseUrl = basePath + 'AjaxListener?className=com.dvision.digitalplatform.bizApp.modifyUser';








Ext.onReady(function(){  


 var openUrl = baseUrl +'&methodName=getUser';
     openUrl += '¶mCount=1';
openUrl +=  '¶m_0='+ names;


//var ds = new Ext.data.Store({
//        proxy: new Ext.data.HttpProxy({url:'grid.jsp'}),
//        reader: new Ext.data.JsonReader({
//        totalProperty: 'totalProperty',
//     root: 'root',
//     fields :['id','name','descn']
//        } )
//    });


 //------------------------------------------------------------------------------------------------------
//编码方式




Ext.lib.Ajax.defaultPostHeader += '; charset=utf-8';
          //使用表单提示
          Ext.QuickTips.init();
          Ext.form.Field.prototype.msgTarget = 'side';
       
        //定义表单
          var simple = new Ext.FormPanel({
            labelWidth: 75,          
            baseCls: 'x-plain',
            defaults: {width: 150},
            defaultType: 'textfield',//默认字段类型
            
            reader: new Ext.data.JsonReader({
successProperty: 'success',
root: 'info'
},['USERID','USERNAME','PASSWORD','LINKMOBILE','LINKPHONE','POSTALCODE','EMAIL','USERDESC','ADDRESS']
), 
                 
            //定义表单元素
            items: [{
              id:'i_id',
                  fieldLabel: '用户编号',
                  name: 'USERID',//元素名称
                  //anchor:'95%',//也可用此定义自适应宽度
                  allowBlank:false,//不允许为空
                  blankText:'id不能修改',//错误提示内容
                  disabled:true
               },{
              id:'i_name',
                  fieldLabel: '用户名称',
                  name: 'USERNAME',//元素名称
                  //anchor:'95%',//也可用此定义自适应宽度
                  allowBlank:false,//不允许为空
                  blankText:'用户名不能为空'//错误提示内容
               },{
                  id:'i_pass',
                  fieldLabel: '用户密码',
                  //anchor:'95%',
                  name: 'PASSWORD',
                  allowBlank:false,
                  blankText:'密码不能为空'
               },{
                  id:'i_mobile',
                  fieldLabel: '联系手机',
                  //anchor:'95%',
                  name: 'LINKMOBILE',
                  allowBlank:false,
                  blankText:'联系手机不能为空'
               },{
                  id:'i_phone',
                  fieldLabel: '联系电话',
                  //anchor:'95%',
                  name: 'LINKPHONE',
                  allowBlank:false,
                  blankText:'联系电话不能为空'
               },{
                  id:'i_code',
                  fieldLabel: '邮政编码',
                  //anchor:'95%',
                  name: 'POSTALCODE',
                  allowBlank:false,
                  blankText:'邮政编码不能为空'
               },{
                  id:'i_emai',
                  fieldLabel: '邮件地址',
                  //anchor:'95%',
                  name: 'EMAIL',
                  allowBlank:false,
                  blankText:'邮件不能为空'
               },{
                  id:'i_desc',
                  fieldLabel: '用户描述',
                  //anchor:'95%',
                  name: 'USERDESC',
                  allowBlank:false,
                  blankText:'用户描述不能为空'
               },{
                  id:'i_add',
                  fieldLabel: '联系地址',
                  //anchor:'95%',
                  name: 'ADDRESS',
                  allowBlank:false,
                  blankText:'联系地址不能为空'
               }
            ],


            buttons: [{
               text: '提交',
               type: 'submit',
               //定义表单提交事件
               handler:function(){ 


if(simple.form.isValid()){//验证合法后使用加载进度条
                           Ext.MessageBox.show({
                              title: '请稍等',
                              msg: '正在加载...',
                              progressText: '',
                              width:300,
                              progress:true,
                              closable:false,
                              animEl: 'loding'
                           });
                           //控制进度速度
                           var f = function(v){
                            return function(){
                                    var i = v/11;
                                    Ext.MessageBox.updateProgress(i, '');
                                    };
                           };


                           for(var i = 1; i < 13; i++){
                              setTimeout(f(i), i*150);
                           }
  //----------------------------------------------------------------------------------------------------------------------                               
                          //提交到服务器操作
  //                        simple.form.doAction('submit',{
  //                          url:'',//文件路径
  //                          method:'post',//提交方法post或get 
//
// params:'',    
//                            //提交成功的回调函数
//                            success:function(form,action){
//                                 if (action.result.msg=='ok') {
 //                                   document.location='abc.jsp';
 //                                } else {
//                                    Ext.Msg.alert('登陆错误',action.result.msg);
//                                 }
//                            },
//                            //提交失败的回调函数
//                            failure:function(){
 //                                Ext.Msg.alert('错误','服务器出现错误请稍后再试!');
 //                           }
 //                         });
 
  saveUrl = '';
   saveUrl = basePath+"AjaxListener?className=com.dvision.digitalplatform.bizApp.modifyUser";
   saveUrl+="&methodName=updateUser";
    saveUrl += '¶mCount=9';
       saveUrl += '¶m_0='+ Ext.getCmp('i_id').getValue();
           saveUrl += '¶m_1='+ Ext.getCmp('i_name').getValue();
           saveUrl += '¶m_2='+ Ext.getCmp('i_pass').getValue();
           saveUrl += '¶m_3='+ Ext.getCmp('i_mobile').getValue();
           saveUrl += '¶m_4='+ Ext.getCmp('i_phone').getValue();
           saveUrl += '¶m_5='+ Ext.getCmp('i_code').getValue();
           saveUrl += '¶m_6='+ Ext.getCmp('i_emai').getValue();
           saveUrl += '¶m_7='+ Ext.getCmp('i_desc').getValue();
    saveUrl += '¶m_8='+ Ext.getCmp('i_add').getValue();
   
   
    http.send(saveUrl,function(rtn){
        if(rtn=='1')
        {
        Ext.Msg.alert("提示","更新信息成功!    ");
        popWin.hide();
                     //  store.reload();
        }
        else if(rtn=='-1')
        {
        Ext.Msg.alert("提示","更新信息失败!    ");
        }
        }
//         ,Ext.util.JSON.encode(formStore)
        );
   
                        }                                                    
               }
            },{
               text: '取消',
               handler:function(){simple.form.reset();}//重置表单
            }]
            
         }); 
           simple.getForm().load({
       url:openUrl
 });  
                //定义窗体
               win = new Ext.Window({
                  id:'win',
                  title:'用户资料修改',
                  layout:'fit',   //之前提到的布局方式fit,自适应布局               
                  width:300,
                  height:350,
                  plain:true,
                  bodyStyle:'padding:5px;', 
   maximizable:false,//禁止最大化
                  closeAction:'close',
                  closable:false,//禁止关闭
                  collapsible:true,//可折叠
                  plain: true,
                  buttonAlign:'center',
                  items:simple//将表单作为窗体元素嵌套布局
               });
               win.show();//显示窗体
               
                              
});



java代码:

package com.dvision.digitalplatform.bizApp;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
import java.util.Vector;


import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;


import net.sf.json.JSONArray;


import com.dvision.digitalplatform.ajaxUtil.DAO;
import com.dvision.digitalplatform.ajaxUtil.StringUtil;






public class modifyUser {


public String getUser(String names){
String rtn="";
DAO dao=new DAO();



  
   Vector v=new Vector();
   System.out.println(names);
   System.out.println(names);
try {
String sql="select userid,username,linkphone,linkmobile,address,postalcode,email,userdesc,password from t_user WHERE username='admin'";
v=dao.execCommand(sql);
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
rtn = "{\"success\":\"" + true + "\",\"info\":"
+ JSONArray.fromObject(v).toString() + "}";
System.out.println(rtn);
return rtn;
}


public String updateUser(String i_id,String i_name,String i_pass,String i_mobile,String i_phone,String i_code,String i_emai,String i_desc,String i_add)
{
String sql="";
String rtn = "";
DAO dao=new DAO();
try {
// jsonStr = new String(jsonStr.getBytes("gbk"),"utf-8");
// JSONObject store=JSONObject.fromString(jsonStr);
// String id = store.getString("id");
// String name = store.getString("name");
// String fatherid= store.getString("fatherid");
// String url= store.getString("url");
// String sx= store.getString("sx");
// String depth = store.getString("depth");
i_name = StringUtil.isoToGbk(i_name);
i_pass = StringUtil.isoToGbk(i_pass);
i_mobile = StringUtil.isoToGbk(i_mobile);
i_phone = StringUtil.isoToGbk(i_phone);
i_code = StringUtil.isoToGbk(i_code);
i_emai = StringUtil.isoToGbk(i_emai);
i_desc = StringUtil.isoToGbk(i_desc);
i_add = StringUtil.isoToGbk(i_add);


     sql="update t_user set username='"+ i_name +"',password='"+i_pass+"',linkmobile='"+i_mobile+"',linkphone='"+i_phone+"',postalcode='"+i_code+"', email='"+i_emai+"',userdesc='"+i_desc+"',address='"+i_add+"' where userid="+i_id;
// sql="update t_user (username,password,linkmobile,linkphone,postalcode,email,userdesc,address) set values ('"+i_name +"','"+i_pass +"','"+ i_mobile+"','"+ i_phone+"','"+ i_code+"','"+i_emai +"','"+ i_desc+"','"+ i_add+"')";
if(dao.execUpdate(sql))
 rtn = "1";
else
 rtn = "-1";
} catch (Exception e) {
e.printStackTrace();
System.out.println(sql);

}
return rtn;
}













}

你可能感兴趣的:(运用extjs技术进行form表单数据交互)