正常情况下,在一个部门管理页面,不仅仅需要展示列表数据,还需要基本的增删改操作,所以,我们先把之前写好的新增功能集成进来。
在toolbar中,添加一个新增按钮。
<div id="toolbar" style="padding:10px 12px;"> <a href="javascript:openDialog()" class="easyui-linkbutton" iconCls="icon-add" plain="true">新增部门</a> <br><br> 请输入部门名称:<input type="text" name="deptname" id="deptname" /> <button ="search();" id="submit" style="float:right;">查询</button></div>
然后,编写其点击事件:
function openDialog(){ alert(); }
测试一下,在页面中点击这个新增按钮,能不能成功的alert,如果不能,那么就去仔细查看是不是哪里写错了,比如少了个括号什么的。
在body区域加上dialog的div标签块。
<div id="dialog0" class="easyui-dialog" style="width:500px;height:300px;padding:10px 20px;" closed="true" data-options="title:'部门新增'" buttons="#dialog0-buttons"> <!-- 在对话框中画一个简单的表达组件 --> <form id="form0" method="post"> <table cellspacing="5px;" cellpadding="0px"> <tr> <td>部门编号:</td> <td><input type="text" id="deptid" name="deptid" class="easyui-validatebox" required="true"/></td> </tr> <tr> <td>部门名称:</td> <td><input type="text" id="deptname" name="deptname" class="easyui-validatebox" required="true"/></td> </tr> </table> </form> </div> <div id="dialog0-buttons"> <a href="javascript:save();" class='easyui-linkbutton' iconCls="icon-ok">保存</a> </div>
别忘了修改openDialog方法的内容:
function openDialog(){ $("#dialog0").dialog("open"); }
效果:
当我们点击保存按钮,回去调用一下save方法, 因为这个保存按钮:
<a href="javascript:save();" class='easyui-linkbutton' iconCls="icon-ok">保存</a>
它拥有一个save的点击事件。
Save函数:
function save(){ $("#form0").form("submit",{ //提交的目标服务器地址 url : "saveDept.php" , //验证表单内元素是否有效? onSubmit : function(){ return $(this).form("validate"); } , //如果服务器成功返回数据,就会启动这个方法 //参数data就是服务器返回的数据 success : function(data){ $.messager.alert("系统提醒","保存成功!"); $("#dialog0").dialog("close"); } }); }
表单提交的地址是saveDept.php.
<?php //建立MYSQL数据库连接 $conn = mysql_connect("localhost","root",""); //选择test数据库 $db = mysql_select_db("test",$conn); //设置编码格式为UTF-8,以便支持中文 mysql_query("set names utf8"); $deptid = $_POST["deptid"]; $deptname = $_POST["deptname"]; //echo "部门编号:$deptid<br>"; //echo "部门名称:$deptname"; //编写sql语句 $sql = "INSERT INTO tm_dept (id, deptid, deptname, createtime, updatetime) VALUES (NULL, '$deptid', '$deptname', now(), now());"; //执行sql语句 mysql_query($sql) or die(mysql_error()); echo "success";?>
如果你希望在新增成功后,默认刷新列表,就在回调函数中加一个search方法的调用即可:
后台错误返回
正常情况下,后台代码的运行不会一帆风顺,可能会发生一些错误,这个时候我们就需要告诉页面有没有错,发生了什么错。在企业里面,一般会设置一个错误对象,包含错误信息和错误码。
php:
在执行sql之前,定义一个通用的返回对象,包含错误码和错误信息
$resultData = array(); $resultData['errCode'] = 0; //默认错误码为0,表示没有错误$resultData['errMsg'] = ""; //默认错误信息为空
然后,执行sql语句的时候,调用err函数:
//编写sql语句 $sql = "INSERT INTO tm_dept (id, deptid, deptname, createtime, updatetime) VALUES (NULL, '$deptid', '$deptname', now(), now());"; //执行sql语句 mysql_query($sql) or die( err() ); function err(){ $resultData['errCode'] = -1; $resultData['errMsg'] = mysql_error(); echo json_encode($resultData); }
前台接收的方式:
$("#form0").form("submit",{ //提交的目标服务器地址 url : "saveDept.php" , //验证表单内元素是否有效? onSubmit : function(){ return $(this).form("validate"); } , //如果服务器成功返回数据,就会启动这个方法 //参数data就是服务器返回的数据 success : function(data){ data = eval("("+data+")"); if(data.errCode < 0){ $.messager.alert("系统提醒","后台程序发生错误,原因是:<br><font style='color:red;'>"+data.errMsg+"</font>"); return; } $.messager.alert("系统提醒","保存成功!"); $("#dialog0").dialog("close"); search(); } }); }
PS:如果sql语句成功执行,就应该把resultData输出到页面。
//执行sql语句 mysql_query($sql) or die( err() ); echo json_encode($resultData);
下载地址:https://pan.baidu.com/s/1OXvqQwAmz7usgD4KqiUXLw
作者:剽悍一小兔
链接:https://www.jianshu.com/p/9ca72adf95fc