一、數據收集並妥善管理數據是網絡應用共同的必要。CRUD允許我們生產頁面列表並編輯數據庫記錄。
本文主要演示如何使用jQuery EasyUI實現CRUD DataGrid.
將使用到的插件有:
datagrid:向用戶展示列表數據
dialog:創建並編輯一條單一的數據
form:用於提交表單數據
messager:顯示一些操作信息
二、操作步驟
1.准備數據庫並創建實例數據
2.創建DataGrid來顯示用戶信息
創建沒有JavaScript代碼的DataGrid
1 <table id="dg" title="My Users" class="easyui-datagrid" style="width:550px;height:250px" 2 url="get_users.php" 3 toolbar="#toolbar" 4 rownumbers="true" fitColumns="true" singleSelect="true"> 5 <thead> 6 <tr> 7 <th field="firstname" width="50">First Name</th> 8 <th field="lastname" width="50">Last Name</th> 9 <th field="phone" width="50">Phone</th> 10 <th field="email" width="50">Email</th> 11 </tr> 12 </thead> 13 </table> 14 <div id="toolbar"> 15 <a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newUser()">New User</a> 16 <a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editUser()">Edit User</a> 17 <a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="destroyUser()">Remove User</a> 18 </div>
顯示結果如圖:
DataGrid中的url屬性中的get_user.php用來從服務器檢索數據、
1 $rs = mysql_query('select * from users'); 2 $result = array(); 3 while($row = mysql_fetch_object($rs)){ 4 array_push($result, $row); 5 } 6 7 echo json_encode($result);
3.創建表單對話框
使用相同的對話框來創建或編輯用戶
1 <div id="dlg" class="easyui-dialog" style="width:400px;height:280px;padding:10px 20px" 2 closed="true" buttons="#dlg-buttons"> 3 <div class="ftitle">User Information</div> 4 <form id="fm" method="post"> 5 <div class="fitem"> 6 <label>First Name:</label> 7 <input name="firstname" class="easyui-validatebox" required="true"> 8 </div> 9 <div class="fitem"> 10 <label>Last Name:</label> 11 <input name="lastname" class="easyui-validatebox" required="true"> 12 </div> 13 <div class="fitem"> 14 <label>Phone:</label> 15 <input name="phone"> 16 </div> 17 <div class="fitem"> 18 <label>Email:</label> 19 <input name="email" class="easyui-validatebox" validType="email"> 20 </div> 21 </form> 22 </div> 23 <div id="dlg-buttons"> 24 <a href="#" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveUser()">Save</a> 25 <a href="#" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')">Cancel</a> 26 </div>
顯示頁面如圖:
4.實現創建和編輯用戶
當創建用戶時,打開一個對話框並清空表單數據
1 function newUser(){ 2 $('#dlg').dialog('open').dialog('setTitle','New User'); 3 $('#fm').form('clear'); 4 url = 'save_user.php'; 5 }
當編輯用戶時,打開一個對話框並從datagrid選擇的行中加載表單數據
1 var row = $('#dg').datagrid('getSelected'); 2 if (row){ 3 $('#dlg').dialog('open').dialog('setTitle','Edit User'); 4 $('#fm').form('load',row); 5 url = 'update_user.php?id='+row.id; 6 }
url中存儲着用戶數據表單回傳的URL地址
5.保存用戶數據
1 function saveUser(){ 2 $('#fm').form('submit',{ 3 url: url, 4 onSubmit: function(){ 5 return $(this).form('validate'); 6 }, 7 success: function(result){ 8 var result = eval('('+result+')'); 9 if (result.errorMsg){ 10 $.messager.show({ 11 title: 'Error', 12 msg: result.errorMsg 13 }); 14 } else { 15 $('#dlg').dialog('close'); // close the dialog 16 $('#dg').datagrid('reload'); // reload the user data 17 } 18 } 19 }); 20 }
提交表單之前,onSubmit函數將被調用,該函數用來驗證表單字段值,當表單字段值提交成功,關閉對話框並重新加載datagrid數據
6.刪除一個用戶
1 function destroyUser(){ 2 var row = $('#dg').datagrid('getSelected'); 3 if (row){ 4 $.messager.confirm('Confirm','Are you sure you want to destroy this user?',function(r){ 5 if (r){ 6 $.post('destroy_user.php',{id:row.id},function(result){ 7 if (result.success){ 8 $('#dg').datagrid('reload'); // reload the user data 9 } else { 10 $.messager.show({ // show error message 11 title: 'Error', 12 msg: result.errorMsg 13 }); 14 } 15 },'json'); 16 } 17 }); 18 } 19 }
在刪除一行之前,我們將顯示一個確認對話框讓用戶決定是否真的刪除該行數據,當移除數據成功之后,調用reload方法刷新datagrid數據、