extJs 常用到的增,删,改,查操作代码


Posted in Javascript onDecember 28, 2009
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> 
    <head> 
        <title>extJs中常用到的增删改查操作的示例代码</title> 
        <!-- CommonJs.jsp 为 ExtJS 引入的路径 --> 
        <%@ include file="../extJs/CommonJs.jsp"%> 
        <script type="text/javascript"><!-- 
        /** 
        * 作     者: 花 慧 
        * 时     间: 2009年12月22日 
        * 内 容: extJs中常用到的增,删,改,查操作 
        */     
        //设置每页显示的行数默认为10 
        var QUERY_PAGE_SIZE = 10; 
        /** 
        * SearchQueryForm():绘制查询表单 
        */ 
        function searchQueryForm() 
        { 
         //form 使用的时候建议设为局部变量,可以通过Ext.getCmp(“”)去获取form 
         var queryForm = null; 
            queryForm = new Ext.FormPanel({ 
                id:'queryForm', //指定queryForm的Id 
                renderTo:'searchPanel', //指向form所在的div层 
                labelWidth:70, //label标签的width占页面的百分比 
                region:'north', 
                border:false, //以显示面板的body元素的边界,虚假隐藏起来(默认为true) 
                badyBorder:false, //显示面板的body元素,假以隐藏它(默认为true的内部边界) 
                labelAlign:'right', //label标签的对齐方式 
                frame:true, //自定义面板的圆形边界,边界宽度1px。默认为false 
                title:'用户信息查询', //form的标题 
                /** 
                *buttons:在FormPanel中按钮的集合 
                */ 
                buttons:[{handler:addForm,text:'新增'}, 
                        {handler:submitForm,text:'查询'}, 
                        {handler:resetForm,text:'重置'}], 
             /** 
             * items: 在FormPanel中不可缺少的部分 
             */ 
             items:[{ 
         /** 
              * layout:extJs容器组件,可以设置它的显示风格 
              * 它的有效值有absolute,accordion,anchor,border,card,fit,form and table 共9种 
              */ 
                 layout:'column', 
                 items:[ 
                     { 
                         columnWidth:.5, 
                         layout:'form', 
                         items:{ 
                             name:'userId', 
                             hiddenName:'userId', 
                             xtype:'textfield', 
                             fieldLabel:'用户编码', 
                             maxLength:'50', 
                             vtype:'specialChar', 
                             anchor:'80%' 
                         } 
                     },{ 
                         columnWidth:.5, 
                         layout:'form', 
                         items:{ 
                             name:'userName', 
                             hiddenName:'userName', 
                             xtype:'textfield', 
                             fieldLabel:'用户名称', 
                             maxLength:'100', 
                             vtype:'specialChar', 
                             anchor:'80%' 
                         } 
                     } 
                 ] 
             }] 
            }); 
        } 
        /** 
        * showUserForm():绘制添加表单 
        */ 
        function showUserForm() 
        { 
         //将变量定义成局部变量,避免每次都生成一个新对象 
            var userForm = null; 
            userForm = new Ext.FormPanel({ 
                id:'conditionForm', 
                labelWidth:'80', 
                labelAlign:'right', 
                border:false, 
                bodyBorder:false, 
             frame:true, 
             items:[ 
                 layout:'column', 
                 items:[ 
                 { 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.userId', 
                         hiddenName:'userInfo.userId', //hiddenName动态的绑定数据库中对应的字段 
                         xtype:'textField', //xtype可以分为三类,textField为表单域的控件 
                         fieldLabel:'用户编码<font color=red>*</font>',//控件前的文本说明 
                         labelSeparator:'', 
                         blankText : '填写用户编码', //为空的文本框提示信息 
                         allowBlank:false,      //不允许为空 
                         maxLength:'50',      //文本框允许输入的最大的长度,最小的minLength 
                         vtype:'specialChar', 
                         anchor:'80%' 
                     } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.userName', 
                         hiddenName:'userInfo.userName', 
                         xtype:'textField', 
                         fieldLabel:'用户姓名<font color=red>*</font>', 
                         labelSeparator:'', 
                         blankText:'填写用户姓名', 
                         allowBlank:false, 
                         maxLength:'100', 
                         vtype:'specialChar', 
                         anchor:'100%' 
                     } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.pwd', 
                         hiddenName:'userInfo.pwd', 
                         xtype:'textField', 
                         inputType:'password', 
                         fieldLabel:'用户密码<font color=red>*</font>', 
                         labelSeparator:'', 
                         blankText:'填写用户密码', 
                         allowBlank:false, 
                         maxLength:'12', 
                         minLength:'6', 
                         value:'123456', //用户默认的秘密 
                         anchor:'100%' 
                     } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'rPwd', 
                         hiddenName:'rPwd', 
                         xtype:'textField', 
                         inputType:'password', 
                         fieldLabel:'确认密码<font color=red>*</font>', 
                         labelSeparator:'', 
                         blankText:'二次输入的秘密要相同', 
                         allowBlank:false, 
                         vtype:'pwdRange', 
                         pwdRange:{begin:'userInfo.pwd',end:'rPwd'}, 
                         maxLength:'12', 
                         anchor:'100%' 
                     } 
                 }] 
             ] 
            }); 
        } 
        /** 
        * editUserForm():绘制修改表单 
        */ 
        function editUserForm(){ 
            //将变量定义成局部变量,避免每次都生成一个新对象 
            var userForm = null; 
            userForm = new Ext.FormPanel({ 
                id:'editForm', 
                labelWidth:'80', 
                labelAlign:'right', 
                border:false, 
                bodyBorder:false, 
             frame:true, 
             items:[ 
                 layout:'column', 
                 items:[ 
                 { 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.userId', 
                         hiddenName:'userInfo.userId', //hiddenName动态的绑定数据库中对应的字段 
                         xtype:'textField', //xtype可以分为三类,textField为表单域的控件 
                         fieldLabel:'用户编码', //控件前的文本说明 
                         labelSeparator:':', 
                         readOnly:true, //文本框只读 
                 disabled:true, //文本框灰色,区别与其他的文本框颜色 
                         blankText : '填写用户编码', //为空的文本框提示信息 
                         allowBlank:false,      //不允许为空 
                         maxLength:'50',      //文本框允许输入的最大的长度,最小的minLength 
                         //字母开头,且只能存在字母与数字长度为2到12位 
                         regex : /^[a-zA-Z]{1}([a-zA-Z0-9]|[_]){1,11}$/, 
                 regexText : '用户编码必须以字母开头,长度2-12位!', 
                         anchor:'90%' 
                     } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.userName', 
                         hiddenName:'userInfo.userName', 
                         xtype:'textField', 
                         fieldLabel:'用户姓名', 
                         labelSeparator:':', 
                         blankText:'填写用户姓名', 
                         allowBlank:false, 
                         maxLength:'100', 
                         //只含有汉字、数字、字母、下划线不能以下划线开头和结尾 
                         regex : /^(?!_)(?!.*?_$)[a-zA-Z0-9_\u4e00-\u9fa5]+$/, 
                 regexText : '只含有汉字、数字、字母、下划线不能以下划线开头和结尾!', 
                         anchor:'90%' 
                     } 
                 },{ 
                  columnWidth:'.2', 
         items:{ 
     hiddenName:"infoFill", 
         name:"infoFill", 
         xtype:'label', 
         html:'<font color=red>*</font>', 
         labelSeparator:'', 
         anchor:'100%' 
         } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'userInfo.pwd', 
                         hiddenName:'userInfo.pwd', 
                         xtype:'textField', 
                         inputType:'password', 
                         fieldLabel:'用户密码<font color=red>*</font>', 
                         labelSeparator:':', 
                         blankText:'填写用户密码', 
                         allowBlank:false, 
                         maxLength:'12', 
                         minLength:'6', 
                         anchor:'90%' 
                     } 
                 },{ 
                  columnWidth:'.2', 
         items:{ 
     hiddenName:"infoFill", 
         name:"infoFill", 
         xtype:'label', 
         html:'<font color=red>*</font>', 
         labelSeparator:'', 
         anchor:'100%' 
         } 
                 },{ 
                     columnWidth:'.8', 
                     items:{ 
                         name:'rPwd', 
                         hiddenName:'rPwd', 
                         xtype:'textField', 
                         inputType:'password', 
                         fieldLabel:'确认密码<font color=red>*</font>', 
                         labelSeparator:':', 
                         blankText:'二次输入的秘密要相同', 
                         allowBlank:false, 
                         //在extCommon.js文件中定义二次输入的密码相同验证pwdRange 
                         // vtype为验证的方法,如果是通用的验证,请在方法中定义,如果是特例,可以使用regex 
                         vtype:'pwdRange', 
                         pwdRange:{begin:'userInfo.pwd',end:'rPwd'}, 
                         maxLength:'12', 
                         anchor:'90%' 
                     } 
                 },{ 
                  columnWidth:'.2', 
         items:{ 
     hiddenName:"infoFill", 
         name:"infoFill", 
         xtype:'label', 
         html:'<font color=red>*</font>', 
         labelSeparator:'', 
         anchor:'100%' 
         } 
                 }] 
             ] 
            }); 
        } 
        /** 
        * onReady:该文件准备好(在onload和图像加载之前) 
        */ 
        Ext.onReady(function(){ 
            searchQueryForm(); 
            //获取查询form 
            var queryForm = Ext.getCmp("queryForm").getForm(); 
         /** 
         * layout设置为border表示页面将划分为东南西北中五个部分 
         * 这里表示centerPanel放在中间 
         */ 
            var layout = new Ext.Viewport({ 
                layout:'border', 
                defaluts:{border:false,bodyBorder:false,activeTab:0}, 
          items:[queryForm,{id:'centerPanel',region:'center',height:document.body.clientHeight,contentEl:'mainDiv'}] 
            }); 
            //页面加载的时候,默认数据查询页面显示用户信息列表 
            submitForm(); 
        }); 
        //查询信息 
        var store = new Ext.data.Store({ 
            url:'../user/doGetPageList.action', //action的路径 
            reader:new Ext.data.JsonReader({ 
                root:'userList', //从struts2.0里面传递过来的参数:用户的集合 
                totalProperty:'rowTotal', //从struts2.0里面传递过来的参数:总共的信息的行数 
                id:'userId', 
                successPropery:'success'}, 
                ['userId','userName','pwd'] 
            ) 
        }); 
        /** 
        * callback:调用的函数 
        */ 
        function getMsg() 
        { 
        } 
        /** 
        * 模糊查询 
        */ 
        function submitForm() 
        { 
         //初始化grid 
            var grid = null; 
            //复选框 
            var sm = new Ext.grid.CheckboxSelectionModel({ 
                dataIndex:'id', 
                width:'20' 
            }); 
            /** 
         *  sortabel:(可选)如果真要排序允许在此列 
         *  renderer:(可选)用于生成给定数据值单元格的HTML标记的功能。如果没有指定,默认渲染器使用的原始数据值。 
         * 在renderer:function createButton(参数)这里的参数可以没有或多个 
         *  鼠标移动图片上变成"手"是:style="cursor:hand" 
         */ 
            var colM = new Ext.grid.ColumnModel( 
                [sm,{header:'用户账号',dataIndex:'userId',align:'center',sortable:true}, 
                {header:'用户姓名',dataIndex:'userName',align:'center',sortabel:true}, 
                {header:'删除',dataIndex:'id',align:'center',renderer:function createButton(){ 
                    return '<img alt="删除" style="cursor:hand" style="cursor:hand" src="../images/hh_framework/ico_delete.gif" src="images/hh_framework/ico_delete.gif" />';}}, 
                {header:'编辑',dataIndex:'userId',align:'center',renderer:function createButton(userId, metadata, record){ 
                    return '<a style="cursor:hand" style="cursor:hand" onclick=updateForm('+userId+') >'+record.get('userName')+'的信息修改'+'</a>';}}] 
            ); 
         //获取查询表单 
            var form = Ext.getCmp("queryForm").getForm(); 
            //判断是否通过验证,如果没有请直接关闭 
            if(!form.isValid()) 
            { 
                Ext.Msg.alert("系统提示","查询数据不正确,请确认输入!"); 
                return ; 
            } 
            //差选queryform中查询的数据参数 
            store.baseParams = form.getValues(); 
            /** 
            * getLimitCount():获取分页每页行数,如果不传值,则会取默认值 
            * Start表示读取数据的起始位置、limit表示每次读取多少条数据 
            * callback:getMsg 表示回调时,执行函数 getMsg。可省略 
            */ 
            store.load({params:{start:0,limit:getLimitCount()}, callback:getMsg}); 
            if(grid == null) 
            { 
                grid = new Ext.grid.EditorGridPanel({ 
                    renderTo:"mainDiv", //grid查询结果指向显示的div层 
                    title:"用户查询结果", //grid标题 
                    width:document.body.clientWidth, //设置grid的width的值 
                    hight:document.doby.clientHight-100,//设置hight的值 
                    viewConfig:{forceFit:true}, //设置列数的充满窗口 
                    loadMask:true,                //在加载数据时的遮罩效果 
                    stripeRows:true, //隔行换色 
                    region:'center', //这个是设置在ViewPort中显示的位置 
                    cm:colM, //定义的列 
                    ds:store, //定义的数据源 
                    border:false, 
                    bodyBorder:false, 
                    sm:sm, //定义的复选框 
                    //listeners:包含一个或多个事件处理程序被添加到这个对象初始化过程中 
                    listeners:{cellclick:renderPage}, 
                    /** 
                 * bbar: new Ext.PagingToolbar部分是定义分页工具栏, 
                 * 这里的分页控件栏还用到了1个自己定义的插件,就是可以选择每页显示多少条的 
                    * plugins : [new Ext.ux.PageSizePlugin()],参考Ext的API 
                 * 要实现分页,后台必须有total属性,表示共多少条数据 
                 */ 
                    bbar:new Ext.PagingToolbar({ 
                        items:[{ 
                            xtype:'button', 
                            text:'删除所选', 
                            handler:delUserAll, //自定义执行动 
                            pressed:true 
                        }], 
                        id:'pageToolBar', 
                        pageSize:QUERY_PAGE_SIZE, //每页的行数默认为:QUERY_PAGE_SIZE 
                        store:store, 
                        displayInfo:true, 
                        displayMsg:'显示第{0}条到{1}条记录,共{2}条记录', 
                        emptMsg:'没有记录', 
                        plugins:[new Ext.ux.PageSizePlugin()] 
                    }) 
                }); 
            } 
            grid.render(); 
        } 
        /** 
        * 增加用户信息 
        */ 
        function addForm() 
        { 
            showUserForm(); 
            //获取绘制用户窗口的form 
            var userForm = Ext.getCmp("conditionForm").getForm(); 
            //初始化用户添加的窗口的Id 
            var addUserWin = Ext.getCmp("addWin"); 
            if(addUserWin == null) 
            { 
                addUserWin = new Ext.Window({ 
                    width:500, //初始窗口的width的值 
                    x:100, //窗口的初始化x方向的位置 
                    y:100, //窗口的初始化y方向的位置 
                    plain:true, 
                    modal:true, //模式窗口,默认为false 
                    closeAction:"hide", //默认窗口隐藏 
                    resizable:false, //窗口的大小不允许拖动,默认为true 
                    id:"addWin", //指定用户添加窗口的Id 
                    items:[userForm], 
                    buttons:[ 
                 {text:'保存',handler:function(){ 
                     if(userForm.form.isValid()){ 
                      userForm.form.doAction('submit',{ 
                             url:'../user/addUser.action', 
                             params:{roleId:userForm.form.findField('userId').getValue()}, 
                             method:'post', //数据提交的方式:有两种get,post 
                             waitTitle:'提示信息', //数据提交等待的滚动条 
                             waitMsg:'保存数据,请稍候...', //滚动条提示的内容 
                          success:function(form,action){ 
                          var message = action.result.message; 
                              if(message == null){ 
                              Ext.Msg.alert("提示信息","用户信息添加成功!"); 
                              store.reload(); 
                              addUserWin.hide(); 
                              }else{ 
                              Ext.Msg.alert("提示信息",message); 
                              } 
                          }, 
             failure:function(form,action){ 
             Ext.Msg.alert('提示信息',"新用户添加失败!"); 
             return; 
             } 
             }); 
                 }else { 
                     Ext.Msg.alert("提示信息","表单有错误,请正确填写!"); 
                 } 
                 }}, 
                 {handler:function(){userForm.form.reset();},text:'重置'}, 
                 {handler:function(){addUserWin.hide();},text:'关闭'}] 
                }); 
            } 
            addUserWin.show(); 
        } 
        /** 
        * 删除用户信息 
        */ 
        function delForm(userId) 
        { 
            Ext.Msg.confirm('提示信息','你确定要执行删除操作吗?',function(btn){ 
                if(btn == 'yes') 
                { 
                     /** 
                 * 数据提交的一种方式:Ext.Ajax.request({}); 
                 */ 
                    Ext.Ajax.request({ 
                        url:'../user/delUser.action', 
                        params:{userId:userId}, 
                        method:'post', 
                        success:function(o) 
                        { 
                            var info = Ext.decode(o.responseText); 
                            Ext.Msg.alert("提示信息",info.message); 
                            store.reload(); 
                            return ; 
                        }, 
                        failure:function(form,action) 
                        { 
                            Ext.Msg.alert("提示信息","用户信息删除失败!"); 
                            return ; 
                        } 
                    }); 
                } 
            }); 
        } 
        /** 
        * 批量删除事件 
        */ 
        function delUserAll() 
        { 
         //grid中复选框被选中的项 
             var rows = grid.getSelectionModel().getSelections(); 
             //user_id:所有选中的用户Id的集合使用','隔开,初始化为空 
             var user_id = ''; 
         for(var i = 0;i<rows.length;i++) 
         { 
             if(i>0) 
             { 
                 user_id = user_id+','+rows[i].get('userId'); 
             }else{ 
                 user_id = user_id+rows[i].get('userId'); 
             } 
         } 
         //没有选择要执行操作的对象 
             if(user_id == "") 
             { 
                 Ext.Msg.alert("提示信息","请选择要删除的对象"); 
                 return ; 
             }else{ 
                 Ext.Msg.confirm("提示信息","请确定要执行删除操作吗?",function (btn){ 
                     if(btn == 'yes') 
                     { 
                         Ext.Ajax.request({ 
                             url:"../user/delAllUser.action", 
                             params:{id:user_id}, 
                             method:'post', 
                             success:function(o){ 
                                 var info = Ext.decode(o.responseText); 
                                 Ext.Msg.alert("提示信息",info.message); 
                                 store.reload(); 
                                 return ; 
                             }, 
                             failure:function(form,action){ 
                                 Ext.Msg.alert("提示信息","用户信息删除失败!"); 
                             } 
                         });     
                     } 
                 }); 
             } 
        } 
        /** 
        * 修改用户信息 
        * 参数userId:修改对象的Id 
        */ 
        function updateForm(userId) 
        { 
            editUserForm(); 
            var userForm = Ext.getCmp("editForm").getForm(); 
            Ext.Ajax.request({ 
                url:'../user/doGetOne.action', 
                params:{userId:userId}, 
                method:'post', 
                //从struts2.0里返回的参数 
                success:function(o) 
                { 
                 //读取action传递过来的对象参数 
                 //docode:解码(解析)一个JSON字符串对象 
                    var user = Ext.decode(o.responseText); 
                    //用户编辑窗口的打开 
                    editUser(user); 
                    //将对象信息显示在对应的form文本框中 
                    userForm.form.findFiled('userInfo.userId').setValue(user.userInfo.userId); 
                    userForm.form.findFiled('userInfo.userName').setValue(user.userInfo.userName); 
                    userForm.form.findFiled('userInfo.pwd').setValue(user.userInfo.pwd); 
                    userForm.form.findFiled('rPwd').setValue(user.userInfo.pwd); 
                } 
            }); 
        } 
        /** 
        * 用户信息编辑窗口 
        */ 
        function editUser(user){ 
            var userForm = Ext.getCmp("editForm").getForm(); 
            //得到用户编辑的窗口的对象 
            var editUserWin = Ext.getCmp("editWin"); 
            //当为空的时候将进行实例化 
            if(editUserWin == null) 
            { 
                editUserWin = new Ext.Window({ 
             id:'editWin', 
                width:500, 
                x:100, 
                y:100, 
                modal:true, 
                resizable:false, 
                closeAction:"hide", 
                title:'用户信息修改', 
                items:[userForm], 
                buttons:[ 
                    {text:'保存',handler:function(){ 
                        if(userForm.form.isValid()) 
                        { 
                         /** 
                         * 数据提交的第二种方式:form.doAction('submit',{}); 
                         */ 
                            userForm.form.doAction('submit',{ 
                                url:'../user/updUser.action', 
                                params:{userId:userForm.form.findField('userInfo.userId').getValue()}, 
                                method:'post', 
                                waitTitle:'提示信息', 
                                waitMsg:'数据处理中,请稍后....', 
                                //从struts2.0里不需要返回的参数 
                                success:function(form,action) 
                                { 
                                    Ext.Msg.alert("提示信息","用户信息修改成功!"); 
                                    //查询的数据集合store刷新,实现页面自动刷新的效果 
                                    store.reload(); 
                                    //将窗口关闭时候,window. hide()方法是隐藏,因此并不会真正销毁窗口对象 
                                    editUserWin.hide(); 
                                    return ; 
                                }, 
                                failure:function(form,action) 
                                { 
                                    Ext.Msg.alert("提示信息","用户信息修改失败"); 
                                    return ; 
                                } 
                            }); 
                        }else 
                        { 
                            Ext.Msg.alert("提示信息","表单有错误,请重新填写!"); 
                        } 
                    }}, 
                    {text:'关闭',handler:function(){editUserWin.hide();}}] 
             }); 
            } 
            editUserWin.show(); 
        } 
        /** 
        * 重置页面查询表单 
        */ 
        function resetForm() 
        { 
            Ext.getCmp("queryForm").getForm().reset(); 
        } 
        /** 
        * 每行单元格点击事件 
        */ 
        function renderPage(grid,rowIndex,columnIndex,e) 
        { 
         //触发事件的对象的Id 
            var id = grid.getStore().getAt(rowIndex).data['userId']; 
            switch(columuIndex) 
            { 
                case 3:delForm(id); 
                     break; 
             /** 
                *case 4:updateForm(id); 
                *     break; 
                */ 
             default:break; 
            } 
        } 
// --></script> 
    </head> 
    <body> 
        <div id="searchPanel"> 
        </div> 
        <div id="centerPanel"> 
        </div> 
        <div id="mainDiv"></div> 
    </body> 
</html>
Javascript 相关文章推荐
Mootools 1.2教程 同时进行多个形变动画
Sep 15 Javascript
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
Mar 20 Javascript
Microsfot .NET Framework4.0框架 安装失败的解决方法
Aug 14 Javascript
纯js实现仿QQ邮箱弹出确认框
Apr 29 Javascript
Javascript控制div属性动态变化实例分析
Oct 08 Javascript
js简单判断移动端系统的方法
Feb 25 Javascript
js实现简单的获取验证码按钮效果
Mar 03 Javascript
vue2中使用less简易教程
Mar 27 Javascript
cocos2dx+lua实现橡皮擦功能
Dec 20 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
Apr 29 Javascript
element-ui中el-upload多文件一次性上传的实现
Dec 02 Javascript
Node实现搜索框进行模糊查询
Jun 28 Javascript
firefox和IE系列的相关区别整理 以备后用
Dec 28 #Javascript
javascript 显示当前系统时间代码
Dec 28 #Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
Dec 28 #Javascript
javascript options属性集合操作代码
Dec 28 #Javascript
javascript 动态调整图片尺寸实现代码
Dec 28 #Javascript
jquery $(document).ready() 与window.onload的区别
Dec 28 #Javascript
jQuery的强大选择器小结
Dec 27 #Javascript
You might like
PHP中的串行化变量和序列化对象
2006/09/05 PHP
php 全文搜索和替换的实现代码
2008/07/29 PHP
php cookie中点号(句号)自动转为下划线问题
2014/10/21 PHP
php cli配置文件问题分析
2015/10/15 PHP
php HTML无刷新提交表单
2016/04/05 PHP
深入理解PHP中的count函数
2016/05/31 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
Javascript简单改变表单元素背景的方法
2015/07/15 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
2016/08/29 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
vue将后台数据时间戳转换成日期格式
2019/07/31 Javascript
详解vue v-model
2020/08/31 Javascript
python文件读写并使用mysql批量插入示例分享(python操作mysql)
2014/02/17 Python
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
继电保护工岗位职责
2014/01/05 职场文书
教学大赛获奖感言
2014/01/15 职场文书
创业融资计划书
2014/04/25 职场文书
超市促销活动总结
2014/07/01 职场文书
市政工程技术专业自荐书
2014/07/06 职场文书
装修施工安全责任书
2014/07/24 职场文书
工伤私了协议书范本
2014/11/24 职场文书
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL