[jQuery EasyUI系列] 创建增删改查应用
一、数据收集并妥善管理数据是网络应用共同的必要。CRUD允许我们生产页面列表并编辑数据库记录。
本文主要演示如何使用jQuery EasyUI实现CRUD DataGrid.
将使用到的插件有:
datagrid:向用户展示列表数据
dialog:创建并编辑一条单一的数据
form:用于提交表单数据
messager:显示一些操作信息
二、操作步骤
1.准备数据库并创建实例数据
2.创建DataGrid来显示用户信息
创建没有JavaScript代码的DataGrid
<table id="dg" title="My Users" class="easyui-datagrid" style="width:550px;height:250px"
url="get_users.php"
toolbar="#toolbar"
rownumbers="true" fitColumns="true" singleSelect="true">
<thead>
<tr>
<th field="firstname" width="50">First Name</th>
<th field="lastname" width="50">Last Name</th>
<th field="phone" width="50">Phone</th>
<th field="email" width="50">Email</th>
</tr>
</thead>
</table>
<div id="toolbar">
<a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newUser()">New User</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editUser()">Edit User</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="destroyUser()">Remove User</a>
</div>
显示结果如图:

DataGrid中的url属性中的get_user.php用来从服务器检索数据、
 $rs = mysql_query('select * from users');
 $result = array();
 while($row = mysql_fetch_object($rs)){
     array_push($result, $row);
 }
 echo json_encode($result);
3.创建表单对话框
使用相同的对话框来创建或编辑用户
<div id="dlg" class="easyui-dialog" style="width:400px;height:280px;padding:10px 20px"
closed="true" buttons="#dlg-buttons">
<div class="ftitle">User Information</div>
<form id="fm" method="post">
<div class="fitem">
<label>First Name:</label>
<input name="firstname" class="easyui-validatebox" required="true">
</div>
<div class="fitem">
<label>Last Name:</label>
<input name="lastname" class="easyui-validatebox" required="true">
</div>
<div class="fitem">
<label>Phone:</label>
<input name="phone">
</div>
<div class="fitem">
<label>Email:</label>
<input name="email" class="easyui-validatebox" validType="email">
</div>
</form>
</div>
<div id="dlg-buttons">
<a href="#" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveUser()">Save</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')">Cancel</a>
</div>
显示页面如图:

4.实现创建和编辑用户
当创建用户时,打开一个对话框并清空表单数据
 function newUser(){
     $('#dlg').dialog('open').dialog('setTitle','New User');
     $('#fm').form('clear');
     url = 'save_user.php';
 }
当编辑用户时,打开一个对话框并从datagrid选择的行中加载表单数据
 var row = $('#dg').datagrid('getSelected');
 if (row){
     $('#dlg').dialog('open').dialog('setTitle','Edit User');
     $('#fm').form('load',row);
     url = 'update_user.php?id='+row.id;
 }
url中存储着用户数据表单回传的URL地址
5.保存用户数据
 function saveUser(){
     $('#fm').form('submit',{
         url: url,
         onSubmit: function(){
             return $(this).form('validate');
         },
         success: function(result){
             var result = eval('('+result+')');
             if (result.errorMsg){
                 $.messager.show({
                     title: 'Error',
                     msg: result.errorMsg
                 });
             } else {
                 $('#dlg').dialog('close');        // close the dialog
                 $('#dg').datagrid('reload');    // reload the user data
             }
         }
     });
 }
提交表单之前,onSubmit函数将被调用,该函数用来验证表单字段值,当表单字段值提交成功,关闭对话框并重新加载datagrid数据
6.删除一个用户
 function destroyUser(){
     var row = $('#dg').datagrid('getSelected');
     if (row){
         $.messager.confirm('Confirm','Are you sure you want to destroy this user?',function(r){
             if (r){
                 $.post('destroy_user.php',{id:row.id},function(result){
                     if (result.success){
                         $('#dg').datagrid('reload');    // reload the user data
                     } else {
                         $.messager.show({    // show error message
                             title: 'Error',
                             msg: result.errorMsg
                         });
                     }
                 },'json');
             }
         });
     }
 }

在删除一行之前,我们将显示一个确认对话框让用户决定是否真的删除该行数据,当移除数据成功之后,调用reload方法刷新datagrid数据、
[jQuery EasyUI系列] 创建增删改查应用的更多相关文章
- MyBatis学习系列二——增删改查
		
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...
 - jQuery调用WebService实现增删改查的实现
		
第一篇博客,发下我自己写的jQuery调用WebService实现增删改查的实现. 1 <!DOCTYPE html> 2 3 <html xmlns="http://ww ...
 - easyui+nodejs+sqlserver增删改查实现
		
用到的模块或者技术: Express: http://www.expressjs.com.cn/4x/api.html#express Easyui: http://www.jeasyui.com/d ...
 - nodejs+easyui(抽奖活动后台)增删改查
		
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfAAAAJACAIAAAD97KNZAAAgAElEQVR4nO2daXxb5Z2o7w+dO1/ufL ...
 - easyui表格的增删改查
		
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
 - asp.net EasyUI DataGrid 实现增删改查
		
转自:http://www.cnblogs.com/create/p/3410314.html 前台代码: <!DOCTYPE html> <html xmlns="htt ...
 - Javascript/Jquery操作数组,增删改查以及动态创建HTML元素
		
<html> <head> <title> New Document </title> <script src="~/Scripts/j ...
 - jquery  对select option 增删改查
		
一.查 jQuery获取select的Text和Value: 代码如下: 1.当select添加选择事件,当选择其中一项时触发: $("#select_id"). ...
 - jQuery之必会增删改查Dom操作
		
.next .prev <button>change</button> <span class = '.demo'>aaa</span> <p ...
 
随机推荐
- 005.TCP--拼接TCP头部IP头部,实现TCP三次握手的第一步(Linux,原始套接字)
			
一.目的: 自己拼接IP头,TCP头,计算效验和,将生成的报文用原始套接字发送出去. 若使用tcpdump能监听有对方服务器的包回应,则证明TCP报文是正确的! 二.数据结构: TCP首部结构图: s ...
 - 磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]
			
1.磁盘基础知识 1.1 物理结构 硬盘的物理结构一般由磁头与碟片.电动机.主控芯片与排线等部件组成:当主电动机带动碟片旋转时,副电动机带动一组(磁头)到相对应的碟片上并确定读取正面还是反面的碟面,磁 ...
 - C++浅析——虚表和虚表Hook
			
为了探究虚表的今生前世,先来一段测试代码 虚函数类: class CTest { public: int m_nData; virtual void PrintData() { printf(&quo ...
 - [转]C#编程总结(三)线程同步
			
本文转自:http://www.cnblogs.com/yank/p/3227324.html 在应用程序中使用多个线程的一个好处是每个线程都可以异步执行.对于 Windows 应用程序,耗时的任务可 ...
 - 【CSS】使用CSS选择器(第二部分)
			
1. 使用结构性伪类选择器 使用结构性伪类选择器能够根据元素在文档中的位置选择元素.这类选择器都有一个冒号字符前缀(:),例如 :empty .它们可以单独使用,也可以跟其他选择器组合使用,如: p: ...
 - 【转】最长回文子串的O(n)的Manacher算法
			
Manacher算法 首先:大家都知道什么叫回文串吧,这个算法要解决的就是一个字符串中最长的回文子串有多长.这个算法可以在O(n)的时间复杂度内既线性时间复杂度的情况下,求出以每个字符为中心的最长回文 ...
 - Makefile规则③规则语法、依赖、通配符、目录搜寻、目标
			
规则语法 通常规则的语法格式如下: TARGETS : PREREQUISITES COMMAND ... 或者: TARGETS : PREREQUISITES ; COMMAND COMMAND ...
 - linux运维中的命令梳理(四)
			
----------管理命令---------- ps命令:查看进程 要对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps (1) ps :是显示瞬间进程的状态,并不 ...
 - wget: unable to resolve host address的解决方法
			
摘要:wget:无法解析主机地址.这就能看出是DNS解析的问题. wget:无法解析主机地址.这就能看出是DNS解析的问题. 解决办法: 登入root(VPS).进入/etc/resolv.conf. ...
 - Ubuntu终端命令行不显示颜色
			
在网上找到的一个有效方案是在.bash_profile 中增加颜色定义 export LS_COLORS='di=01;35:ln=01;36:pi=40;33:so=01;35:do=01;35:b ...