1、easyUI-创建 CRUD普通dataGrid(表格)
在实现功能之前,我们要做以下几个准备:
分以下几个步骤:开发工具,easyUI包,目录结构,创建数据库,创建相应的页面视图,后台代码编写,优化;
第一步:开发工具
我的开发工具是Hbuild,开发语言是PHP,开发数据库是MySQL,服务器是Apache;
HBuilder。HBuilder开发工具可以在官网下载最新版本工具:http://www.dcloud.io/下载;
WampServer开发环境下载。http://wampserver-64bit.en.softonic.com/。选择三合一,既PHP,MYSQL,APACHE;
安装:
①HBuilder下载后直接解压使用无需安装。
②WampServer下载后按步骤安装即可,安装后自带Mysql,Apache服务器和PHP环境,有一键启动服务等功能,不需要额外下载数据库和apche或tomcat来装载服务,非常方便。(如果安装有问题的话,下载vcredist_x86.exe文件,在安装WampServer之前安装)。
③下载mysql图形画界面。(可有可无,不熟悉命令行操作,最好下载)。
第二步:easyUI包
下载最新版本easyUI包,在官网下载;
解压后如图所示:
aaarticlea/png;base64,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" alt="" />
第三步:目录结构
下载好后相关工具文件等,打开Hbuild工具
目录如下:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAS0AAAD2CAIAAAAMD0bhAAAR5UlEQVR4nO3d/08b9x3HcfYf7Q+o/A/4Ryv0q7S2nipZidUfhoU2pS6tHKkRHipIEENKB6RnIrdbloUuXBrobBzihFu9pE1R+iXYISVuIQ2kgPnm3H44+775c9zZd+fP5+wXemhyrsfZoD31ORvf210TExOiKAAARV3oEIA6dAhAHzoEoA8dAtCHDgHoc75Dnp/oOfbr2jWUD6DhcIc8P9Hf//729g2jHba3b/T3v08txdWhoD/ErdL/vQOomXR4MvK2kfqdTVdC+qsiOgQmmXdofbv1CKUv6j88ACPc6rC/v1++3dfXp74t/5P6Dw/ACFc67O/vF0VxZmZGul0ul9W35+bmjDtMxvwBnz/g8weCKb66cXUoWNsYy1X3LKZCvurGaFbkubBq/1zUFx4qrg4F/dGscoRoVn0DgCWWOqz9P75KNOuwr69Pbi+fz4uiuLi42NPTs7i4WC6XjdfDZEx58sZzYak6nosPFaUdclGfUU5Se6IgikI2HojltPugQ2CbW+elm5ub+XxeWgDL5XI+n5filBdDQoe5qC54eYnTrn5CbdlUv+IiN5yM1SeHDoFt7naYz+dXVlaWl5dLpdLc3Fy5XFY/b9QfQbWmKVaHgnKQ+op4LqzUWEyFgim+mAr54kn9zugQ2OZWh/l8fnl5WTo7XVxc3NzcLJVK+Xz+2NdLkzHVM8BsPJoVNXEWUyH5vJSr7iafvgri6lAwHI2Fa4uk6k8U6m9Eh8AgJ/9+qOtQFMVSqdTT0zMzM1Mul0VRHBkZObZD4ksy0qIX8PkDwXhUrigbr52+SqufvFG1ospns8o3okNgkpPvp1E3Njc3J4qi9GxwYmJCFMWVlZUe7ZfjP0w2rnrVFMA73Oqwv79fer1U+pqZmVE/M3SlQ6x14FlOdvjOO3/psfx1+vSfHfwxpNNU+bklgLfguicA+tAhAH3oEIA+dAhAHzoEoA8dAtCHDgHoY6LDxEBE9sn5d58+maf+kABaya0OG3pjqrrDxEBk4tzpRw8/39pM61D/ZQG4xMUOrW/XdWiE+i8LwCWsdHhhLEr9dwFACysdXrsyaOseDS6YiuWUgTdm2wGocbdDi4NtEgOROwJXWuOtnJ1emv6g7gikGTbVCxdrV2CYbweghpX1sPQTPz87bKXD+/c+Ix65boaN6lJ9zT+NtgNQw0SHY4O9zzbTY4O9phFOjUYrR7f1RyDPsEGH4BlMdHhp+qxwc9LKYri0SHq0xBk20vlnbWqGhe0A1DDx98Ps/OjUaNQ0wrHB3p3tBdLdEWfY8Fw4EItHtSerx2wHoIaJ99PMXv7QymI4d3W4kcManXDiRBSYw0SHF8bMF8PEQKS01tAMKHQInsFEh+5Ah+AZbdwhgGegQwD60CEAfegQgD50CEAfOgSgDx0C0OftDh0ebEP8IFQA9zHXIc3BNugQKGGxQ+vbHR5sY9Ih3ogDbmG6Q+kS/vrtMocH26BDoMTzHdodbCMqg2p8ftXHeusH3qh2k/YhTMQBaBKjHbZqsE0ypqooG5c7NBx4owybIuwA0CRGO5RYWQ9tDbbRnYhq/2k28KZ+B4AmebtDu4NtjDo0HXhD3gGgSUx3aLrd7mAbzXkpz4Vr56XGA2+qO5N3AGgSix22cLCN9OxOOrcMcamo8vyQMPCmdiIaHioa7ADQHOY6bIg7g20AWs3bHboz2Aag1bzdIUB7QIcA9KFDAPrQIQB96BCAPnQIQB86BKAPHQLQ5+0OHZ5P0zSTC4iTMbzxDY7FXIc059M0DR2CPSx2aH27w/NpmoYOwR6mO2z1fJqmoUOwx/Md2ptPk4z5Q1yuOmkmllMug6pe41vdJ0C67t5gsI1qe+0g6BBMMNphK+fTKNf++gO+eFIU1ZfYJ2PqJpVRNEaDbZIxf4hblbbL1w2jQzDBaIcS1+fTaLIh3dafcNbSMhqooVxVrF4S0SGY8HaHdufTNNMhabu6Q8ITRXQIJpju0HS7E/Npju2w/rxUOf8kDbbRn6/KJ7HoEI7DYoctnE9j2qFg+DoNebANcb4wOgQTzHXYEMyngfbg7Q4xnwbag7c7BGgP6BCAPnQIQB86BKAPHQLQhw4B6EOHAPShQwD6vN0hK/NpAOxpnw5pzqcBsKetOqQ2nwbAHs93yMR8GgB7PN+hvfk00vX1ypVN8qWDpMuXBNU1UNprnQgzaQAa4PkO7c2nkT7mvnZxoDJ+hufitcbIM2l01/7Wz6QBaIDnO7Q3n0aXjeafxVRIc/lvYzNp6P9ywEO83aHt+TQGHa4OBeWc5Nltjc2kAWiAtzu0PZ+G58K1WYnVBVCfnLKxsZk0AA3wdoe259PwXDgQi0frxs9IzxsDPn8gGI8G5e3KizemM2kAGuDtDm3Pp7HxsgpOR8E53u7Q9nyahjrkubC8YGrnKQLY4+0ObWtwPVSdfyJCcFCHdwjABHQIQB86BKAPHQLQhw4B6EOHAPR5vsMfS0tdJ6Z/d+KTrhPTGt3TXSem+a/+c1Sh/yABjtcmHZJ/tu6LXd0XP83OHxwafPvqUFC5ZMmM82+gUV8wBR2trTs8kRRFoav74r9ufUn+dnQIbGjrDrunu7ovSieoDtwXOgTXtHOHyg/ZjQ6BaZ3RodEO8jW+UhKpaN17R9Ufyh04ZiCN6jJFIRtXrmkURcF4Co7mTmvfYjwyB9oXOlSu8a2WoDxp1F3gazKQJhsPBFM8adk0moJDvFOjnaGdtUmHFum/XbceKmmFuNUmBtJIi1j9qabRFBzSnR47MgfaVft0KNa+pNvq/1Vt13570x2SnyiiQ2hSW3Vo0J7Y1T3dTIcNDqSRzkuLqVB1N92pZv0UHOMOSTtDO2urDh1eD0X1KajJQBrVs8daSNoOSVNwjNdDws7QztqqQ9XzQH2N5OeHLdLo9A2ciHac9umwmddpWgQdgom26FB608xxLlJ9kOgQTHi+Q4A2gA4B6EOHAPShQwD60CEAfegQgD50CEAfEx2qPxPmk/PvPn0yT/0hAbSSWx2ejLxtpH5n3cczTZw7/ejh51ubaR3qvywAl7jYofXtVj47LTEQof7LAnBJKzr0+QPE7bLEQOTCWJT67wKAFlY6vHZl0N496gfGaEfLaC81ylWvWorllCubVN91/A7HHpkw4QbAnLsd6uZHiMYd3hG40hpv5ez00vQHdUeo/3Re7RbdSBj1eAtlPEwDOxgeWT9sBsASVtbD0k/8/OywlQ7v3/tMf4T6QRX6LcRRFMTbZjtYOrLqSmIAC5jocGyw99lmemyw1zTCqdFo5ei2/giWOrSWWTMd1n8jOoTGMPF66aXps8LNSSuL4dIi8dGqB8YkuRRPOHskjDxsqkNLR0aH0Bgm/n6YnR+dGo2aRjg22LuzvUC+R2VgjPqFE4NXU2x1aOXI6BAaw8T7aWYvf2hlMZy7Okz9oQK4gYkOL4yZL4aJgUhpDX8MgPbERIcAHQ4dAtCHDgHoQ4cA9KFDAPrQIQB96BCAPnQIQB8THWI+DXQ45jrEfBroQCx2iPk00GlY6RDzaaCTsdKh4/NpiqmQ7tKk+i0AjGClQ4fn0yjjZIy3ADCDlQ4dnk9TXR7VF+PWbwFgBRMdOj+fpornwrr26rcA0MdEh87Pp1kd4qr/rM1Tq99C+6cGkDHRoRvzabLx2ggZaaYoaQsAI5joEPNpoMMx0SHm00CHY6JDgA6HDgHoQ4cA9KFDAPrQIQB96BCAPnQIQB86BKCPiQ7tzqfB52CDxzHXYTPzadAheByLHWI+DXQaVjrEfBroZKx0aGs+jTLzIhnzh7hc9RqoWE4Qc1H10Bqxuo90AVSISxldQAzQUqx0aGs+jabDQDUtqUDpUkPtDjHVBcHoEFjASoe25tPo1sPqCzak27oJGoYDNQBaiokO7c6nQYfgcUx0aHc+jfUOcV4KTGKiQ7vzaRroUD3JBq/TACuY6JDafBqclwIbmOiwhfNpeC4sT/WumwIOQAkTHbaUcl6KCIEVndchAHvQIQB96BCAPqXDyvP/3v/5x8wPj/nlDQBoJaXDb9ZWlksb2/vrlecA0FJKh9fv/3JwtHFUeXRUKQBAKykd8ssblefrh5UCALSYpsOjijMdmj4r1e2vnU/z3sZ6vrF7fDj+pv/UhYf0f5sAzdF0eFhZ3z8q2CeKwgsv/N6IKAq6/evm00QLhezGk7s6hvdYHH/Tf2qq6MAjB6CirsPDgn1Sh8SVsNqhdn+L82kceWwADNJ0eFBZLx8W7NN12NXVpetQt39iIDI19p4jdw3gRZoO94/Wdw8K9pl2qNs/MRC5ejnR/D2ujL/hPzN3UNg9KHx38VT1w7drWwDYp+lw73B9Z79gn9xbl/ZL3q7bPzEQWbr1z0LxlpWz078n4/p7fDD+hv/MnPoGgKfoO9zeL9hnuh7q9k8MRAqF3LV/j1vp8O6dWf09Phh/w3/m+n5he/9Knz/g85/62wMHfgqAltF0WD5c/22vYJ9ph7r9xwZ7S7/ctTKfZjLRt7XzQH+PD8Zf95/5Qtly++OTAZ//1McPHPhZAFpA0+HuwfpWuWCf6euluv0/4/56Y+FTK4thNpMi3OMP46/7z/DlwtYP4+NpaePt8ZOBvrQDPwtAC2g63DlY3ywX7DP9+6Fu//kvpiYTfVbm0zx+co9wj7UON8sF/mz1Gl/f2SuO/CwALaDtcH/96W7BPtP30+j2v/KPESuL4dWZj8j3+P346/4zvBOPHIAKTYfb++u/7hZab3L0PSsdfr9yi/jt3yRP+U6Of0PjkQM4QtPhb/vrT3YKXpI+I/2pcJb6IwGwQenwy+9+frq78evuKvXHBNBplA6/ffzg3uONrb2N3/bWAaCVlA6PKl99vVa4fv8X6jMCADoN5kQB0IcOAehDhwD0oUMA+pjoUDuf5t2nT+YdOOzqUFD53DUAprnV4cnI20bqd66bT3P60cPPtzbTOo09BnQI3uFih9a3W5xPQ/2XBeCSVnTo8weI22WJgciFsSj13wUALax0eO3KYPN3p3wut+q2eiMA29ztsDayqUo07vCOwJXWeCtnp5emP9AfAR2Cx7GyHpZ+4udnh610eP/eZ/ojoEPwOCY6HBvsfbaZtjKfZmo0Wjm6rT8COgSPY+L10kvTZ4Wbk1YWw6VF0qNV/YmimAr50CF4DRN/P8zOj06NRq3Mp9nZXiDeXTEVkp6CBuNRrIfgOUy8n2b28odWFsO5q8PUHyqAG5jo8MKY+WKYGIiU1njqDxXADUx0CNDh0CEAfegQgD50CEAfOgSgDx0C0IcOAehjpcPynvDiSCaSXOhJZiWR5EIkufCn6ewfP848/vX28+f0HySAS1jpcG9/6ZUE+T1rJ4Yzb00s/PTEOMWGRmDkor7wULGZB5mM2R20kYzhrXZA4oEOXxrJiKIQmlz4ebPuSgsJOgSP80CH3cOZl0Yy3cOZVxOZw8Mlu/flcIc8Fw7EctaPgA6BwAMdyt76eGFv3/Z9oUNgj5c6fCWR2T8g/SflEqdkzB/iUtHqNVAp+X3hyZh6QofSobJd2lm5fFEUsvGAL55U3ZHm4L54UnPY8FBR2iE3FPQHfP5ALCeIOd0jQYdA1n4d1uJRnjQmY35lycrG5Q7V65uyrGXjgWCKJy2bxIOr18NkTI5cKlDZWX546BAImOvw6EiY/V8uNLmwfyA8Ky+9+VHm+t1bRxVBtL4eKmmFuNW6E1H5n7XFyqddEmurXP0pKOng+g7lHYi30SGQsdXh4eHSl1/fenEkc/VO7qgilA+EiRs3X01kMt/mDg9d6JD8RBEdQqux1eGj9aWXRtJj6UW5t63dpfPpxVfOpdc2lprsUHNeynNh9Xmp+nxVeVoYTPHFVKi6m+b8Fh2CK9jqcGdX4LI3Xz6X+bp4q1IRDo6EL+7lXhtNT6YXd8rNroei+hQ0xKVUy+Bq9TUVn195clj7rzwXDvjiSbMOa6Nx5Ndp0CE0jq0ORVHY3hWmMjf/cD59cCA83Vl6bTQ9ev3ms21BPOb5IYDHMdRhaLL6eml5T9j8TXj+XKhUhF+3hN1ydR90CO2KnQ6Fl89luocNvTic6R7O7O3bfj8NAHtY6RCgk6FDAPrQIQB96BCAPnQIQB86BKDv/3IleecIHO4mAAAAAElFTkSuQmCC" alt="" />
创建后的目录介绍,空项目只有,app目录,css,js,img,index.php,index.html;
我们加入了几个文件目录,data目录,主要存放Action或后台操作文件,model目录主要存放后台具体实现方法,page主要存放页面(采用mvc模式建立),common目录
主要存放一些公用的文件,新建的UI目录,主要放一些插件UI如easyUI包。
第四步:创建数据库
我们示例为增删改查用户,所以我们创建一个eui_user表
CREATE TABLE `eui_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`fname` varchar(255) DEFAULT NULL,
`lname` varchar(255) DEFAULT NULL,
`sex` varchar(255) DEFAULT NULL,
`phone` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
第五步:创建相应的页面视图
1、首先,在启用服务器的时候,首先找的是index.html,所有我们编辑html让其跳转我我们的index.php入口,代码如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="refresh" content="0;URL=app/index.php"><!--加入这行代码就会跳转到index.php -->
</head>
<body> </body>
</html>
2、引入相关的easyUI的js,在index.php中,如图所示:
aaarticlea/png;base64,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" alt="" />
3、创建没有 javascript 代码的 DataGrid来显示用户,即用户列表。如代码:
<table id="dg" title="用户列表" class="easyui-datagrid" style="width:550px;height:250px" url="./data/crud/get_user.php" toolbar="#toolbar" rownumbers="true" fitColumns="true" singleSelect="true">
<thead>
<tr>
<th field="fname" width="50">名</th>
<th field="lname" width="50">姓</th>
<th field="sex" width="50">性别</th>
<th field="phone" width="50">联系电话</th>
<th field="email" width="50">邮件</th>
</tr>
</thead>
</table>
<div id="toolbar">
<a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newUser()">添加</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editUser()">修改</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="deleteUser()">删除</a>
</div>
table的一些属性大家可以查看easyUI的API,这里皆不解释了,我们要注意的是这个属性url,直接在table里面当做属性使用会自动请求这个地址,
编写get_user.php,如下代码:在代码中看到引入文件在common目录下,稍后会附出,里面主要编写了一些关于操作数据库的方法。
<?php
require_once "../../../common/medoo.php";
header("Content-Type: text/html; charset=UTF-8");
$medoo = new medoo();
$result = $medoo->select("eui_user","*");
echo json_encode($result,JSON_UNESCAPED_UNICODE);
运行结果如图:(里面有数据)
aaarticlea/png;base64,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" alt="" />
4、我们使用相同的对话框来创建或编辑用户。即点击添加,修改按钮用的都是同一套代码,用弹出框形式操作,如页面代码:
<div id="dlg" class="easyui-dialog" style="width:400px;height:320px;padding:10px 20px;" closed="true" buttons="#dlg-buttons">
<div class="ftitle">基本信息</div>
<hr />
<form id="fm" method="post">
<div class="fitem">
<p>
<label>First Name:</label>
<input name="fname" class="easyui-validatebox" required="true">
</p>
</div>
<div class="fitem">
<p>
<label>Last Name:</label>
<input name="lname" class="easyui-validatebox" required="true">
</p>
</div>
<div class="fitem">
<p>
<label>Sex:</label>
<input name="sex" class="easyui-validatebox" required="true">
</p>
</div>
<div class="fitem">
<p>
<label>Phone:</label>
<input name="phone">
</p>
</div>
<div class="fitem">
<p>
<label>Email:</label>
<input name="email" class="easyui-validatebox" validType="email">
</p>
</div>
</form>
</div>
<div id="dlg-buttons">
<a href="#" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveUser()">保存</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')">关闭</a>
</div>
4、看到一些onclick属性,里面的方法就是我们要实现的,所以我们首先建一个js文件如2所示的js,
首先newUser实现:在js中编写如下代码:
//添加用户
function newUser(){
$('#dlg').dialog('open').dialog('setTitle','添加用户');
$('#fm').form('clear');
url = './data/crud/save_user.php?flag=add';
}
弹出如图编辑界面:
aaarticlea/png;base64,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7/1Pt62smyv82uG/335ql1OvrkpBqOxS/mlrnplp2GqXQDzxLdRoLfv2fXjffZGnniIeD2lqIidOTP7DPxz+zd88+Nu/HXjkEdLQQLxeUl8///LLzV//+kcvveT4Shu2RqdhF5za6mRjezOMBsBtxePxhA18uuxzX359Vbev19gYnAqWHnvlzteydwz98wXyg2/UfHFTzf+GHblaKQiVV7V/2dp1GrbmmjvEIBmjWXZp/vWv6+++e+6JJ0hVFTl0KPL++yP33++7557I22+T6mryzjuRzZtbv/Sl1tJSp9nHce3WBqXL1gbTTg1b9VfSsDXXshFGA+C24vF4Qgbue+3L3/so9+u71wyODikt53sv/dPep752iK+eePoj8qNvex54+r0fh2Igv15Y+LocCsmvF9qEUPi6rPc7VpJb8rpDn9ySY+YBkzGafRrNb77p+cu/vLVqFXnpJbJnT2THjsj27eS11+Z37Jj9939vuuuuVlGM9RKiHCsxTjn6CkuOhY6VOBiv5NixEusLgNEAuK14PJ5pA5sP/d+zH333J+3539j5+NTUlHS2/m5x5Q+bv+Wd2Xxm/tknj+U+tvuHgWBg2pn6ktzcwgp5elquKCyskJWWkvppQ8O09QfDrkpXE8kYzXEq5997r+aTn5xcuZJs3Uq2bSO/+MX8c89Nfec7J++448Krr8aYv3VKtllOT8sVhaZZ6i952vBq480fRgNgCbEY4cK1S198Off0XNn6U//yFxsfuKfsy2X961pmShtCG9c2rnr0paeGb/pjGUCuKCwstLjKfoxPyxWFFnfJFYW5DvJwNkL8+etcPnr08F/91WBW1tBf/7Vv5UrfypWD9947+NnPNn7mM5ffeSfW/BOc4yupNxtNrigsrKgogdEAcAsej2fKwERw4j/2/PinZ9edv7W3qPWJNwb+qym4vWZi4w+bHv3Kc49fvd4zFZu6ioq6isLCirqYZiisuHJF2VhSEatTYcUVw5jJGM0+k4vvv//hF74w/kd/dI3j2jmuheNaOK7t4x/v+bM/u3n//U333tu2e3ecFzI1NTU1daWiMDe3pM6hWWusK8ktqZuaqivRp6y2xJ0/jAbAEmI/5A411ee8/NUPbv7sZHBHjf+F/SMbftTyj1/8n39q776ScLTLewsL916O/rSlsDC3sHBvnd6hbkvh3st1W3K31Jn3Mv0cd3oJO1x8//26Bx6Y+tSnfBzXw3EdHCf/xm9c/a3f6vj93+/+8z8fvOuuyW9+s/WrX23fsyf+C8ndUjdZt8U6MXWul/cW5qqvtG6L/pKtL8xpejAaAEuI/ZAbHRt77Oc/evbc428PbXx96IfPnP3WvRtXn7pwLpnRjEaLystwzKtblsxoF95998hXvnLrzjsDHHeD43o4rv9jHzv58Y83ZGX1/8Ef9Nxxx/UVK27m5Mz867+2rlp1qbzcedC6LZqunOdq2A6jAeAmPB5P0MaOfW8/+MrDvxx+7JkLj3zhv/JqTpy093Gkc29h4d7OYLBzb2HultpgMFi7JXdLreHnYDDaaNzL9LOBZIxm7F+9ciW5++4wx/k5bpDj/L/zO02f+MRH5eXtb73l/ZM/Gf7sZwfuusuXkzP5ta+R4uIzDz9se8LaLbm55tmZm4xzrd2iLJQNDYV7OxPMH0YDYAnxeDwTNvpvDDxU9NR3Tzxw/0++/ebBI/YOsejYs3btnqN71ub+9KjScPSnDg9Nj3Jzc3Nz1+7pcB4wGaMZ+0uPPhq8555bH/vYCMcFfvd3W/70T89s26Zsurh7d8udd47x/Mh9900/8kjoP//z5KpVxn2P/jQ3V5+tFW1jx5619i7ay7C/DhgNgNuKx+MJOPHz8sovPPUvOyrec9x620jGaMb+PadPH87LC6xYMfvHf3z6M585I4rGrRfKy5tXrAg9+ujUv/3byUce6Tl69PbPH0YDYAmJZTSXsFCjBQKBa2fO1K1a1Zid3VJaah+wvbz8zN/+7amVK3tqazMyfxgNgCWktrb25s2b465kdHS0traWsfnDaAAsIU1NTT09PWOupLu7u6mpibH5w2gALCF9fX2NjY1+vz/Th78Vv9/f2NiY8B531M0fRgNgabl06VJDQ0NXV9fIyMhNF+D3+7u6uhobGy9dusTe/GE0AJYc5Q6+tbW1qd17Nz3U1taePn26t7eXyfnDaAAAdoDRAADsAKMBANgBRgMAsAOMBgBgh3QaDUEQJONJj9EQBEFcGBgNQRB2kpTRdh0Zuuqbz/hcEQRB4uTq8HyZZ6ijo6O3t9fv909NTTkb7a1G/+mr4YxPF0EQJE6a5NCvT/g6Ozt7e3tHRkZiGu3c1Zt7j/nloUjGZ4wgCOIYeSiy55jfe/HGlStX+vv7R0dHp6en5+bmrEabm5sLhUKecyO/qvM1yaGuYSw/EQRxUa4OzzfJoT31viNnh9vb27u6ugYGBsbHx0OhkNVohJBIJDIzMxMMBls6Birr+3fUDGT8ei2CIIieHTUDb9T3nzjX3d7eLstyX1+f3+8PBoMzMzORSIQQ8v98wnfzHQzvGgAAAABJRU5ErkJggg==" alt="" />
实现保存方法saveUser,代码如下:
//保存用户
function saveUser(){
$('#fm').form('submit',{
url: url,
onSubmit: function(){
return $(this).form('validate');
},
success: function(result){
//alert(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
}
}
});
}
请求的地址,就是要编写后台代码,此处不解释。
整个js文件如下(不一一解释):
/*
* crud 用户部分
*/
//添加用户
function newUser(){
$('#dlg').dialog('open').dialog('setTitle','添加用户');
$('#fm').form('clear');
url = './data/crud/save_user.php';
}
//修改用户
function editUser(){
var row = $('#dg').datagrid('getSelected');
if (row){
$('#dlg').dialog('open').dialog('setTitle','修改用户');
$('#fm').form('load',row);
url = './data/crud/edit_user.php?id='+row.id;
}
} //保存用户
function saveUser(){
$('#fm').form('submit',{
url: url,
onSubmit: function(){
return $(this).form('validate');
},
success: function(result){
//alert(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
}
}
});
}
//删除用户
function deleteUser(){
var row = $('#dg').datagrid('getSelected');
var url = './data/crud/delete_user.php';
if(row){
$.messager.confirm('Confirm','你确定要删除【'+row.lname+row.fname+'】么?',function(r){
if (r){
$.post(url,{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');
}
});
}
}
第六步:后台代码编写
列表代码(get_user.php):
<?php
require_once "../../../common/medoo.php";
header("Content-Type: text/html; charset=UTF-8");
$medoo = new medoo();
$result = $medoo->select("eui_user","*");
echo json_encode($result,JSON_UNESCAPED_UNICODE);
保存代码(save_user.php):
<?php
require_once "../../../common/medoo.php";
header("Content-Type: text/html; charset=UTF-8");
$medoo = new medoo();
$arrayName = array($_POST);
$result = $medoo->insert("eui_user",$arrayName);
if($result){
echo json_encode(array('success'=>true));
}else{
echo json_encode(array('msg'=>'Some errors occured.'));
}
修改代码(edit_user.php):
<?php
require_once "../../../common/medoo.php";
header("Content-Type: text/html; charset=UTF-8");
$medoo = new medoo();
$id = $_GET['id'];
$result = $medoo->update("eui_user",$_POST," where id=".$id);
if($result){
echo json_encode(array('success'=>true));
}else{
echo json_encode(array('msg'=>'Some errors occured.'));
}
删除代码(delete_user.php):
<?php
require_once "../../../common/medoo.php";
header("Content-Type: text/html; charset=UTF-8");
$medoo = new medoo();
$id = $_POST['id'];
$result = $medoo->delete("eui_user"," where id=".$id);
if($result){
echo json_encode(array('success'=>true));
}else{
echo json_encode(array('msg'=>'Some errors occured.'));
}
第七步:优化
在这些过程中,我们可以把这些增删改查都放在一个文件中,优化后的代码如下,(前面的文件都不要),重新来过,
首先附上common下的medoo文件(此文件直接拿来用,不需要过于深入,只需知道怎么用它即可)
medoo.php
<?php
/*!
* Medoo database framework
* http://medoo.in
* Version 0.9.8.2
*
* Copyright 2015, Angel Lai
* Released under the MIT license
*/
class medoo
{
// General
protected $database_type = 'MySQL'; protected $charset = 'utf8'; protected $database_name = 'easyui'; // For MySQL, MariaDB, MSSQL, Sybase, PostgreSQL, Oracle
protected $server = 'localhost'; protected $username = 'root'; protected $password = ''; // For SQLite
protected $database_file; // For MySQL or MariaDB with unix_socket
protected $socket; // Optional
protected $port = 3306; protected $option = array(); // Variable
protected $logs = array(); protected $debug_mode = false; public function __construct($options = null)
{
try {
$commands = array(); if (is_string($options) && !empty($options))
{
if (strtolower($this->database_type) == 'sqlite')
{
$this->database_file = $options;
}
else
{
$this->database_name = $options;
}
}
elseif (is_array($options))
{
foreach ($options as $option => $value)
{
$this->$option = $value;
}
} if (
isset($this->port) &&
is_int($this->port * 1)
)
{
$port = $this->port;
} $type = strtolower($this->database_type);
$is_port = isset($port); switch ($type)
{
case 'mariadb':
$type = 'mysql'; case 'mysql':
if ($this->socket)
{
$dsn = $type . ':unix_socket=' . $this->socket . ';dbname=' . $this->database_name;
}
else
{
$dsn = $type . ':host=' . $this->server . ($is_port ? ';port=' . $port : '') . ';dbname=' . $this->database_name;
} // Make MySQL using standard quoted identifier
$commands[] = 'SET SQL_MODE=ANSI_QUOTES';
break; case 'pgsql':
$dsn = $type . ':host=' . $this->server . ($is_port ? ';port=' . $port : '') . ';dbname=' . $this->database_name;
break; case 'sybase':
$dsn = 'dblib:host=' . $this->server . ($is_port ? ':' . $port : '') . ';dbname=' . $this->database_name;
break; case 'oracle':
$dbname = $this->server ?
'//' . $this->server . ($is_port ? ':' . $port : ':1521') . '/' . $this->database_name :
$this->database_name; $dsn = 'oci:dbname=' . $dbname . ($this->charset ? ';charset=' . $this->charset : '');
break; case 'mssql':
$dsn = strstr(PHP_OS, 'WIN') ?
'sqlsrv:server=' . $this->server . ($is_port ? ',' . $port : '') . ';database=' . $this->database_name :
'dblib:host=' . $this->server . ($is_port ? ':' . $port : '') . ';dbname=' . $this->database_name; // Keep MSSQL QUOTED_IDENTIFIER is ON for standard quoting
$commands[] = 'SET QUOTED_IDENTIFIER ON';
break; case 'sqlite':
$dsn = $type . ':' . $this->database_file;
$this->username = null;
$this->password = null;
break;
} if (
in_array($type, explode(' ', 'mariadb mysql pgsql sybase mssql')) &&
$this->charset
)
{
$commands[] = "SET NAMES '" . $this->charset . "'";
} $this->pdo = new PDO(
$dsn,
$this->username,
$this->password,
$this->option
); foreach ($commands as $value)
{
$this->pdo->exec($value);
}
}
catch (PDOException $e) {
throw new Exception($e->getMessage());
}
} public function query($query)
{
if ($this->debug_mode)
{
echo $query; $this->debug_mode = false; return false;
} array_push($this->logs, $query); return $this->pdo->query($query);
} public function exec($query)
{
if ($this->debug_mode)
{
echo $query; $this->debug_mode = false; return false;
} array_push($this->logs, $query); return $this->pdo->exec($query);
} public function quote($string)
{
return $this->pdo->quote($string);
} protected function column_quote($string)
{
return '"' . str_replace('.', '"."', preg_replace('/(^#|\(JSON\))/', '', $string)) . '"';
} protected function column_push($columns)
{
if ($columns == '*')
{
return $columns;
} if (is_string($columns))
{
$columns = array($columns);
} $stack = array(); foreach ($columns as $key => $value)
{
preg_match('/([a-zA-Z0-9_\-\.]*)\s*\(([a-zA-Z0-9_\-]*)\)/i', $value, $match); if (isset($match[1], $match[2]))
{
array_push($stack, $this->column_quote( $match[1] ) . ' AS ' . $this->column_quote( $match[2] ));
}
else
{
array_push($stack, $this->column_quote( $value ));
}
} return implode($stack, ',');
} protected function array_quote($array)
{
$temp = array(); foreach ($array as $value)
{
$temp[] = is_int($value) ? $value : $this->pdo->quote($value);
} return implode($temp, ',');
} protected function inner_conjunct($data, $conjunctor, $outer_conjunctor)
{
$haystack = array(); foreach ($data as $value)
{
$haystack[] = '(' . $this->data_implode($value, $conjunctor) . ')';
} return implode($outer_conjunctor . ' ', $haystack);
} protected function fn_quote($column, $string)
{
return (strpos($column, '#') === 0 && preg_match('/^[A-Z0-9\_]*\([^)]*\)$/', $string)) ? $string : $this->quote($string);
} protected function data_implode($data, $conjunctor, $outer_conjunctor = null)
{
$wheres = array(); foreach ($data as $key => $value)
{
$type = gettype($value); if (
preg_match("/^(AND|OR)\s*#?/i", $key, $relation_match) &&
$type == 'array'
)
{
$wheres[] = 0 !== count(array_diff_key($value, array_keys(array_keys($value)))) ?
'(' . $this->data_implode($value, ' ' . $relation_match[1]) . ')' :
'(' . $this->inner_conjunct($value, ' ' . $relation_match[1], $conjunctor) . ')';
}
else
{
preg_match('/(#?)([\w\.]+)(\[(\>|\>\=|\<|\<\=|\!|\<\>|\>\<|\!?~)\])?/i', $key, $match);
$column = $this->column_quote($match[2]); if (isset($match[4]))
{
$operator = $match[4]; if ($operator == '!')
{
switch ($type)
{
case 'NULL':
$wheres[] = $column . ' IS NOT NULL';
break; case 'array':
$wheres[] = $column . ' NOT IN (' . $this->array_quote($value) . ')';
break; case 'integer':
case 'double':
$wheres[] = $column . ' != ' . $value;
break; case 'boolean':
$wheres[] = $column . ' != ' . ($value ? '1' : '0');
break; case 'string':
$wheres[] = $column . ' != ' . $this->fn_quote($key, $value);
break;
}
} if ($operator == '<>' || $operator == '><')
{
if ($type == 'array')
{
if ($operator == '><')
{
$column .= ' NOT';
} if (is_numeric($value[0]) && is_numeric($value[1]))
{
$wheres[] = '(' . $column . ' BETWEEN ' . $value[0] . ' AND ' . $value[1] . ')';
}
else
{
$wheres[] = '(' . $column . ' BETWEEN ' . $this->quote($value[0]) . ' AND ' . $this->quote($value[1]) . ')';
}
}
} if ($operator == '~' || $operator == '!~')
{
if ($type == 'string')
{
$value = array($value);
} if (!empty($value))
{
$like_clauses = array(); foreach ($value as $item)
{
if ($operator == '!~')
{
$column .= ' NOT';
} if (preg_match('/^(?!%).+(?<!%)$/', $item))
{
$item = '%' . $item . '%';
} $like_clauses[] = $column . ' LIKE ' . $this->fn_quote($key, $item);
} $wheres[] = implode(' OR ', $like_clauses);
}
} if (in_array($operator, array('>', '>=', '<', '<=')))
{
if (is_numeric($value))
{
$wheres[] = $column . ' ' . $operator . ' ' . $value;
}
elseif (strpos($key, '#') === 0)
{
$wheres[] = $column . ' ' . $operator . ' ' . $this->fn_quote($key, $value);
}
else
{
$wheres[] = $column . ' ' . $operator . ' ' . $this->quote($value);
}
}
}
else
{
switch ($type)
{
case 'NULL':
$wheres[] = $column . ' IS NULL';
break; case 'array':
$wheres[] = $column . ' IN (' . $this->array_quote($value) . ')';
break; case 'integer':
case 'double':
$wheres[] = $column . ' = ' . $value;
break; case 'boolean':
$wheres[] = $column . ' = ' . ($value ? '1' : '0');
break; case 'string':
$wheres[] = $column . ' = ' . $this->fn_quote($key, $value);
break;
}
}
}
} return implode($conjunctor . ' ', $wheres);
} protected function where_clause($where)
{
$where_clause = ''; if (is_array($where))
{
$where_keys = array_keys($where);
$where_AND = preg_grep("/^AND\s*#?$/i", $where_keys);
$where_OR = preg_grep("/^OR\s*#?$/i", $where_keys); $single_condition = array_diff_key($where, array_flip(
explode(' ', 'AND OR GROUP ORDER HAVING LIMIT LIKE MATCH')
)); if ($single_condition != array())
{
$where_clause = ' WHERE ' . $this->data_implode($single_condition, '');
} if (!empty($where_AND))
{
$value = array_values($where_AND);
$where_clause = ' WHERE ' . $this->data_implode($where[ $value[0] ], ' AND');
} if (!empty($where_OR))
{
$value = array_values($where_OR);
$where_clause = ' WHERE ' . $this->data_implode($where[ $value[0] ], ' OR');
} if (isset($where['MATCH']))
{
$MATCH = $where['MATCH']; if (is_array($MATCH) && isset($MATCH['columns'], $MATCH['keyword']))
{
$where_clause .= ($where_clause != '' ? ' AND ' : ' WHERE ') . ' MATCH ("' . str_replace('.', '"."', implode($MATCH['columns'], '", "')) . '") AGAINST (' . $this->quote($MATCH['keyword']) . ')';
}
} if (isset($where['GROUP']))
{
$where_clause .= ' GROUP BY ' . $this->column_quote($where['GROUP']); if (isset($where['HAVING']))
{
$where_clause .= ' HAVING ' . $this->data_implode($where['HAVING'], ' AND');
}
} if (isset($where['ORDER']))
{
$rsort = '/(^[a-zA-Z0-9_\-\.]*)(\s*(DESC|ASC))?/';
$ORDER = $where['ORDER']; if (is_array($ORDER))
{
if (
isset($ORDER[1]) &&
is_array($ORDER[1])
)
{
$where_clause .= ' ORDER BY FIELD(' . $this->column_quote($ORDER[0]) . ', ' . $this->array_quote($ORDER[1]) . ')';
}
else
{
$stack = array(); foreach ($ORDER as $column)
{
preg_match($rsort, $column, $order_match); array_push($stack, '"' . str_replace('.', '"."', $order_match[1]) . '"' . (isset($order_match[3]) ? ' ' . $order_match[3] : ''));
} $where_clause .= ' ORDER BY ' . implode($stack, ',');
}
}
else
{
preg_match($rsort, $ORDER, $order_match); $where_clause .= ' ORDER BY "' . str_replace('.', '"."', $order_match[1]) . '"' . (isset($order_match[3]) ? ' ' . $order_match[3] : '');
}
} if (isset($where['LIMIT']))
{
$LIMIT = $where['LIMIT']; if (is_numeric($LIMIT))
{
$where_clause .= ' LIMIT ' . $LIMIT;
} if (
is_array($LIMIT) &&
is_numeric($LIMIT[0]) &&
is_numeric($LIMIT[1])
)
{
if ($this->database_type === 'pgsql')
{
$where_clause .= ' OFFSET ' . $LIMIT[0] . ' LIMIT ' . $LIMIT[1];
}
else
{
$where_clause .= ' LIMIT ' . $LIMIT[0] . ',' . $LIMIT[1];
}
}
}
}
else
{
if ($where != null)
{
$where_clause .= ' ' . $where;
}
} return $where_clause;
} protected function select_context($table, $join, &$columns = null, $where = null, $column_fn = null)
{
$table = '"' . $table . '"';
$join_key = is_array($join) ? array_keys($join) : null; if (
isset($join_key[0]) &&
strpos($join_key[0], '[') === 0
)
{
$table_join = array(); $join_array = array(
'>' => 'LEFT',
'<' => 'RIGHT',
'<>' => 'FULL',
'><' => 'INNER'
); foreach($join as $sub_table => $relation)
{
preg_match('/(\[(\<|\>|\>\<|\<\>)\])?([a-zA-Z0-9_\-]*)\s?(\(([a-zA-Z0-9_\-]*)\))?/', $sub_table, $match); if ($match[2] != '' && $match[3] != '')
{
if (is_string($relation))
{
$relation = 'USING ("' . $relation . '")';
} if (is_array($relation))
{
// For ['column1', 'column2']
if (isset($relation[0]))
{
$relation = 'USING ("' . implode($relation, '", "') . '")';
}
else
{
$joins = array(); foreach ($relation as $key => $value)
{
$joins[] = (
strpos($key, '.') > 0 ?
// For ['tableB.column' => 'column']
'"' . str_replace('.', '"."', $key) . '"' : // For ['column1' => 'column2']
$table . '."' . $key . '"'
) .
' = ' .
'"' . (isset($match[5]) ? $match[5] : $match[3]) . '"."' . $value . '"';
} $relation = 'ON ' . implode($joins, ' AND ');
}
} $table_join[] = $join_array[ $match[2] ] . ' JOIN "' . $match[3] . '" ' . (isset($match[5]) ? 'AS "' . $match[5] . '" ' : '') . $relation;
}
} $table .= ' ' . implode($table_join, ' ');
}
else
{
if (is_null($columns))
{
if (is_null($where))
{
if (
is_array($join) &&
isset($column_fn)
)
{
$where = $join;
$columns = null;
}
else
{
$where = null;
$columns = $join;
}
}
else
{
$where = $join;
$columns = null;
}
}
else
{
$where = $columns;
$columns = $join;
}
} if (isset($column_fn))
{
if ($column_fn == 1)
{
$column = '1'; if (is_null($where))
{
$where = $columns;
}
}
else
{
if (empty($columns))
{
$columns = '*';
$where = $join;
} $column = $column_fn . '(' . $this->column_push($columns) . ')';
}
}
else
{
$column = $this->column_push($columns);
} return 'SELECT ' . $column . ' FROM ' . $table . $this->where_clause($where);
} public function select($table, $join, $columns = null, $where = null)
{
$query = $this->query($this->select_context($table, $join, $columns, $where)); return $query ? $query->fetchAll(
(is_string($columns) && $columns != '*') ? PDO::FETCH_COLUMN : PDO::FETCH_ASSOC
) : false;
} public function insert($table, $datas)
{
$lastId = array(); // Check indexed or associative array
if (!isset($datas[0]))
{
$datas = array($datas);
} foreach ($datas as $data)
{
$values = array();
$columns = array(); foreach ($data as $key => $value)
{
array_push($columns, $this->column_quote($key)); switch (gettype($value))
{
case 'NULL':
$values[] = 'NULL';
break; case 'array':
preg_match("/\(JSON\)\s*([\w]+)/i", $key, $column_match); $values[] = isset($column_match[0]) ?
$this->quote(json_encode($value)) :
$this->quote(serialize($value));
break; case 'boolean':
$values[] = ($value ? '1' : '0');
break; case 'integer':
case 'double':
case 'string':
$values[] = $this->fn_quote($key, $value);
break;
}
} $this->exec('INSERT INTO "' . $table . '" (' . implode(', ', $columns) . ') VALUES (' . implode($values, ', ') . ')'); $lastId[] = $this->pdo->lastInsertId();
} return count($lastId) > 1 ? $lastId : $lastId[ 0 ];
} public function update($table, $data, $where = null)
{
$fields = array(); foreach ($data as $key => $value)
{
preg_match('/([\w]+)(\[(\+|\-|\*|\/)\])?/i', $key, $match); if (isset($match[3]))
{
if (is_numeric($value))
{
$fields[] = $this->column_quote($match[1]) . ' = ' . $this->column_quote($match[1]) . ' ' . $match[3] . ' ' . $value;
}
}
else
{
$column = $this->column_quote($key); switch (gettype($value))
{
case 'NULL':
$fields[] = $column . ' = NULL';
break; case 'array':
preg_match("/\(JSON\)\s*([\w]+)/i", $key, $column_match); $fields[] = $column . ' = ' . $this->quote(
isset($column_match[0]) ? json_encode($value) : serialize($value)
);
break; case 'boolean':
$fields[] = $column . ' = ' . ($value ? '1' : '0');
break; case 'integer':
case 'double':
case 'string':
$fields[] = $column . ' = ' . $this->fn_quote($key, $value);
break;
}
}
} return $this->exec('UPDATE "' . $table . '" SET ' . implode(', ', $fields) . $this->where_clause($where));
} public function delete($table, $where)
{
return $this->exec('DELETE FROM "' . $table . '"' . $this->where_clause($where));
} public function replace($table, $columns, $search = null, $replace = null, $where = null)
{
if (is_array($columns))
{
$replace_query = array(); foreach ($columns as $column => $replacements)
{
foreach ($replacements as $replace_search => $replace_replacement)
{
$replace_query[] = $column . ' = REPLACE(' . $this->column_quote($column) . ', ' . $this->quote($replace_search) . ', ' . $this->quote($replace_replacement) . ')';
}
} $replace_query = implode(', ', $replace_query);
$where = $search;
}
else
{
if (is_array($search))
{
$replace_query = array(); foreach ($search as $replace_search => $replace_replacement)
{
$replace_query[] = $columns . ' = REPLACE(' . $this->column_quote($columns) . ', ' . $this->quote($replace_search) . ', ' . $this->quote($replace_replacement) . ')';
} $replace_query = implode(', ', $replace_query);
$where = $replace;
}
else
{
$replace_query = $columns . ' = REPLACE(' . $this->column_quote($columns) . ', ' . $this->quote($search) . ', ' . $this->quote($replace) . ')';
}
} return $this->exec('UPDATE "' . $table . '" SET ' . $replace_query . $this->where_clause($where));
} public function get($table, $join = null, $column = null, $where = null)
{
$query = $this->query($this->select_context($table, $join, $column, $where) . ' LIMIT 1'); if ($query)
{
$data = $query->fetchAll(PDO::FETCH_ASSOC); if (isset($data[0]))
{
$column = $where == null ? $join : $column; if (is_string($column) && $column != '*')
{
return $data[ 0 ][ $column ];
} return $data[ 0 ];
}
else
{
return false;
}
}
else
{
return false;
}
} public function has($table, $join, $where = null)
{
$column = null; $query = $this->query('SELECT EXISTS(' . $this->select_context($table, $join, $column, $where, 1) . ')'); return $query ? $query->fetchColumn() === '1' : false;
} public function count($table, $join = null, $column = null, $where = null)
{
$query = $this->query($this->select_context($table, $join, $column, $where, 'COUNT')); return $query ? 0 + $query->fetchColumn() : false;
} public function max($table, $join, $column = null, $where = null)
{
$query = $this->query($this->select_context($table, $join, $column, $where, 'MAX')); if ($query)
{
$max = $query->fetchColumn(); return is_numeric($max) ? $max + 0 : $max;
}
else
{
return false;
}
} public function min($table, $join, $column = null, $where = null)
{
$query = $this->query($this->select_context($table, $join, $column, $where, 'MIN')); if ($query)
{
$min = $query->fetchColumn(); return is_numeric($min) ? $min + 0 : $min;
}
else
{
return false;
}
} public function avg($table, $join, $column = null, $where = null)
{
$query = $this->query($this->select_context($table, $join, $column, $where, 'AVG')); return $query ? 0 + $query->fetchColumn() : false;
} public function sum($table, $join, $column = null, $where = null)
{
$query = $this->query($this->select_context($table, $join, $column, $where, 'SUM')); return $query ? 0 + $query->fetchColumn() : false;
} public function debug()
{
$this->debug_mode = true; return $this;
} public function error()
{
return $this->pdo->errorInfo();
} public function last_query()
{
return end($this->logs);
} public function log()
{
return $this->logs;
} public function info()
{
$output = array(
'server' => 'SERVER_INFO',
'driver' => 'DRIVER_NAME',
'client' => 'CLIENT_VERSION',
'version' => 'SERVER_VERSION',
'connection' => 'CONNECTION_STATUS'
); foreach ($output as $key => $value)
{
$output[ $key ] = $this->pdo->getAttribute(constant('PDO::ATTR_' . $value));
} return $output;
}
}
?>
然后附上index.php文件,这个文件暂时只修改了table下的url,就是通过url="./data/crud/userAction.php?flag=list"来访问userAction地址,通过flag在userAction中区分跳转到userModel中去,找对应的方法实现。
index.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>dataGrid</title>
<link rel="stylesheet" type="text/css" href="../ui/jquery-easyui-1.4.5/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="../ui/jquery-easyui-1.4.5/themes/icon.css">
<link rel="stylesheet" type="text/css" href="../ui/jquery-easyui-1.4.5/themes/color.css">
<script src="../ui/jquery-easyui-1.4.5/jquery.min.js"></script>
<script src="../ui/jquery-easyui-1.4.5/jquery.easyui.min.js"></script>
<script src="../ui/jquery-easyui-1.4.5/locale/easyui-lang-zh_CN.js"></script>
<script src="../js/crud/bus_pubuser.js"></script>
</head>
<body>
<table id="dg" title="用户列表" class="easyui-datagrid" style="width:550px;height:250px" url="./data/crud/userAction.php?flag=list" toolbar="#toolbar" rownumbers="true" fitColumns="true" singleSelect="true">
<thead>
<tr>
<th field="fname" width="50">名</th>
<th field="lname" width="50">姓</th>
<th field="sex" width="50">性别</th>
<th field="phone" width="50">联系电话</th>
<th field="email" width="50">邮件</th>
</tr>
</thead>
</table>
<div id="toolbar">
<a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newUser()">添加</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="editUser()">修改</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-remove" plain="true" onclick="deleteUser()">删除</a>
</div> <div id="dlg" class="easyui-dialog" style="width:400px;height:320px;padding:10px 20px;" closed="true" buttons="#dlg-buttons">
<div class="ftitle">基本信息</div>
<hr />
<form id="fm" method="post">
<div class="fitem">
<p>
<label>First Name:</label>
<input name="fname" class="easyui-validatebox" required="true">
</p>
</div>
<div class="fitem">
<p>
<label>Last Name:</label>
<input name="lname" class="easyui-validatebox" required="true">
</p>
</div>
<div class="fitem">
<p>
<label>Sex:</label>
<input name="sex" class="easyui-validatebox" required="true">
</p>
</div>
<div class="fitem">
<p>
<label>Phone:</label>
<input name="phone">
</p>
</div>
<div class="fitem">
<p>
<label>Email:</label>
<input name="email" class="easyui-validatebox" validType="email">
</p>
</div>
</form>
</div>
<div id="dlg-buttons">
<a href="#" class="easyui-linkbutton" iconCls="icon-ok" onclick="saveUser()">保存</a>
<a href="#" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')">关闭</a>
</div>
</body>
<html>
修改bus_pubuser.js的请求路径,同样也是通过flag在userAction中来标识,在userModel下找方法。
bus_pubuser.js
/*
* crud 用户部分
*/
//添加用户
function newUser(){
$('#dlg').dialog('open').dialog('setTitle','添加用户');
$('#fm').form('clear');
url = './data/crud/userAction.php?flag=add';
}
//修改用户
function editUser(){
var row = $('#dg').datagrid('getSelected');
if (row){
$('#dlg').dialog('open').dialog('setTitle','修改用户');
$('#fm').form('load',row);
url = './data/crud/userAction.php?flag=modify&id='+row.id;
}
} //保存用户
function saveUser(){
$('#fm').form('submit',{
url: url,
onSubmit: function(){
return $(this).form('validate');
},
success: function(result){
//alert(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
}
}
});
}
//删除用户
function deleteUser(){
var row = $('#dg').datagrid('getSelected');
var url = './data/crud/userAction.php?flag=delete';
if(row){
$.messager.confirm('Confirm','你确定要删除【'+row.lname+row.fname+'】么?',function(r){
if (r){
$.post(url,{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');
}
});
}
}
userAction.php
<?php
require_once "../../model/crud/userModel.php";
$flag = $_GET["flag"];
if(isset($_GET["id"])){
$id=$_GET["id"];
}else if(isset($_POST["id"])){
$id=$_POST["id"];
}else{
$id="";
}
$user = new userModel();
switch($flag){
case "list" : $user->list_user();
break;
case "add" : $user->save_user($_POST);
break;
case "modify" : $user->edit_user($_POST,$id);
break;
case "delete" : $user->delete_user($id);
break;
default: $user->showErrorMsg();
}
userModel.php
<?php
require_once "../../../common/medoo.php";
header("Content-Type: text/html; charset=UTF-8");
class userModel{
function showErrorMsg(){
echo json_encode(array('errorMsg'=>'没有相应的操作模块!'));
} function list_user(){
$medoo = new medoo();
$result = $medoo->select("eui_user","*");
echo json_encode($result,JSON_UNESCAPED_UNICODE);
} function save_user($arr){
$medoo = new medoo();
//var_dump($arr);
//$arrayName = array($_POST);
$result = $medoo->insert("eui_user",$arr);
if($result){
echo json_encode(array('success'=>true));
}else{
echo json_encode(array('errorMsg'=>'操作过程出现错误!'));
}
} function edit_user($arr,$id){
$medoo = new medoo();
$result = $medoo->update("eui_user",$arr," where id=".$id);
if($result){
echo json_encode(array('success'=>true));
}else{
echo json_encode(array('errorMsg'=>'操作过程出现错误!'));
}
} function delete_user($id){
$medoo = new medoo();
$result = $medoo->delete("eui_user"," where id=".$id);
if($result){
echo json_encode(array('success'=>true));
}else{
echo json_encode(array('errorMsg'=>'操作过程出现错误!'));
}
} }
以上这些都是代码优化,但是在这里面还有一个问题,就是页面操作合不合理,问题描述:在弹出添加按钮的时候,还是可以点击修改按钮,缺少遮罩层。
查看API文件可以知道,dialog继承window,在window下面一个属性角modal,将其设为true就可以了。
1、easyUI-创建 CRUD普通dataGrid(表格)的更多相关文章
- jQuery EasyUI 应用 – 创建 CRUD 应用(表格)
jQuery EasyUI 应用 - 创建 CRUD 应用 本节介绍如何创建CRUD应用. CRUD分别是指在做计算处理时的增加(Create).读取查询(Retrieve).更新(Update)和删 ...
- 如何用easyui+JAVA 实现动态拼凑datagrid表格(续)
前面一段时间写了一篇文章: 如何用easyui+JAVA 实现动态拼凑datagrid表格 这篇文章的话,效果是可以实现,但是经过我反复试验,还是存在一些问题的. 今天这篇文章就是向大家介绍下如何避免 ...
- 一步步实现 easyui datagrid表格宽度自适应,效果非常好
一步步实现 easyui datagrid表格宽度自适应,效果非常好: 一.设置公共方法,使得datagrid的属性 fitColumns:true $(function(){ //初始加载,表格宽 ...
- SNF快速开发平台MVC-EasyUI3.9之-DataGrid表格控件如何增加右键菜单
如题,我们在项目开发当中会遇到需要,表格控件增加右键菜单的使用. 下面我们就以SNF框架增加右键菜单步骤如下: 1.在加载页面当中增加如下菜单定义 <div id="mm" ...
- easyUI创建dialog弹框
1.在当前页面必须有一个DIV <!-- 保证金明细的详情列表显示 --> <div id="dialog-alarm-detail"></div&g ...
- 利用EasyUI 数据网格(DataGrid)的loader属性实现后端分页
该属性在easyui官方文档中并没有详细阐述,通过简单的资料查询和摸索,实现了easyUI数据网格的后端分页功能. 在官网文档中这样阐述loader属性: 定义如何从远程服务器加载数据.返回false ...
- yii2-basic后台管理功能开发之二:创建CRUD增删改查
昨天实现了后台模板的嵌套,今天我们可以试着创建CRUD模型啦 刚开始的应该都是“套用”,不再打算细说,只把关键的地方指出来. CRUD即数据库增删改查操作.可以理解为yii2为我们做了一个组件,来实现 ...
- 使用 EasyUI 创建左侧导航菜单
使用 JQuery EasyUI 创建左侧导航菜单,菜单的数据由后台服务提供. 效果图 HTML 元素 <div id="menuAccordion"></div ...
- Cassandra二级索引原理——新创建了一张表格,同时将原始表格之中的索引字段作为新索引表的Primary Key,并且存储的值为原始数据的Primary Key,然后再通过pk一级索引找到真正的值
1.什么是二级索引? 我们前面已经介绍过Cassandra之中有各种Key,比如Primary Key, Cluster Key 等等.如果您对这部分概念并不熟悉,可以参考之前的文章: [Cassan ...
- easyui datagrid 表格适应屏幕
1.项目后台系统使用easyui,datagrid 的数据设置为自动适应屏幕,那么对于笔记本的话,就会显得有的小,可以通过设置datagrid属性,进行固定长度的设置 $('#gridTable'). ...
随机推荐
- 【自动部署】服务器自动化操作 RunDeck
RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程.通过命令行或者web界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的 ...
- 淘宝分布式配置管理服务Diamond
转载:http://blog.csdn.net/kevinlynx/article/details/40017109 在一个分布式环境中,同类型的服务往往会部署很多实例.这些实例使用了一些配置,为了更 ...
- 【Swift】学习笔记(三)——字符和字符串
基本了解了变量的创建和基础数据类型,但是在开发中用得最多的还是字符串.那什么是字符串呢? Swift 的String类型表示特定序列的Character(字符) 类型值的集合,它是值类型具有可变性 S ...
- B7:访问者模式 Visitor
表示一个作用于某对象结构中各元素的操作.它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作. 适用场景:1.适用于元素类数据结构相对稳定(类的方法固定,但属性可以变化,如果方法变化很大,就无 ...
- asp.net 中点击button弹出模式对话框,选择值后返回到页面中(window.showModalDialog实现)
<td>现从事专业</td><td> <asp:TextBox ID="tbMajor" runat="server ...
- HBase源代码分析之MemStore的flush发起时机、推断条件等详情(二)
在<HBase源代码分析之MemStore的flush发起时机.推断条件等详情>一文中,我们具体介绍了MemStore flush的发起时机.推断条件等详情.主要是两类操作.一是会引起Me ...
- 使用LoadRunner监控Apache的步骤 (转)
一.Apache上的设置 打开<Apache Installation>/conf/httpd.conf,进行如下修改: 1. 设置允许查看Apache运行状态的主机 # # Allow ...
- html标签说明
dictype 不区分大小写 HTML 4.01 与 HTML5 之间的差异 在 HTML 4.01 中有三种 <!DOCTYPE> 声明.在 HTML5 中只有一种: <!DOCT ...
- 初学spring(二)
1.spring推荐使用接口编程,配合di可以达到层与层之间解耦
- W25Q128页数和扇区数
int8_t STORAGE_GetCapacity (uint8_t lun, uint32_t *block_num, uint32_t *block_size){ *block_size = 4 ...