jQuery EasyUI,后台管理界面---后台管理
一,admin.php,后台管理界面
<?php session_start(); if (!isset($_SESSION[\'admin\'])) { //判断用户登录成功时创建的SESSION是否存在 header(\'location:login.php\'); //如果不存在,跳转到登录页面 } ?> <!DOCTYPE html> <html> <head> <title>jQuery Easy UI</title> <meta charset="UTF-8" /> <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css" /> <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css" /> <link rel="stylesheet" type="text/css" href="css/admin.css" /> </head> <body class="easyui-layout"> <div data-options="region:\'north\',title:\'header\',split:true,noheader:true" style="height:60px;background:#666;"> <div class="logo">后台管理</div> <div class="logout">您好,<?php echo $_SESSION[\'admin\']?> | <a href="logout.php">退出</a></div> </div> <div data-options="region:\'south\',title:\'footer\',split:true,noheader:true" style="height:35px;line-height:30px;text-align:center;"> ©2009-2015 瓢城 Web 俱乐部. Powered by PHP and EasyUI. </div> <div data-options="region:\'west\',title:\'导航\',split:true,iconCls:\'icon-world\'" style="width:180px;padding:10px;"> <ul id="nav"></ul> </div> <div data-options="region:\'center\'" style="overflow:hidden;"> <div id="tabs"> <div title="起始页" iconCls="icon-house" style="padding:0 10px;display:block;"> 欢迎来到后台管理系统! </div> </div> </div> <script type="text/javascript" src="easyui/jquery.min.js"></script> <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script> <script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js" ></script> <script type="text/javascript" src="js/admin.js"></script> </body> </html>
二,logout.php点击退出
<?php session_start(); session_destroy(); //清除创建的session header(\'location:login.php\'); //跳转到登录页面 ?>
三,admin.js加载导航
数据库表
admin.js
$(function () { $(\'#nav\').tree({ //将导航元素执行树形结构方法 url : \'nav.php\', //远程加载树形结构数据 lines : true, //显示结构虚线 onLoadSuccess : function (node, data) { //在数据加载成功后触发 if (data) { //data接收的所有目录信息对象,判断目录节点是否存在 $(data).each(function (index, value) { //遍历所有目录 if (this.state == \'closed\') { //判断如果目录对象里的state等于closed,说明此目录有子目录 $(\'#nav\').tree(\'expandAll\'); //展开所有节点 } }); } }, onClick : function (node) { //当用户点击一个目录时 if (node.url) { //判断当前对象的url是否存在,也就是在数据库里的url连接地址 if ($(\'#tabs\').tabs(\'exists\', node.text)) { //判断当前目录名称的选项卡是否打开 $(\'#tabs\').tabs(\'select\', node.text); //如果打开的则选择在当前选项卡上 } else { //如果当然选项卡没有打开 $(\'#tabs\').tabs(\'add\', { //添加一个新选项卡面板 title : node.text, //标题为当前目录的名称 iconCls : node.iconCls, //图标为当前目录的图标 closable : true, //显示关闭按钮 href : node.url + \'.php\', //读取远程数据并显示到面板 }); } } } }); $(\'#tabs\').tabs({ //将布局的id为tabs,也就是内容区块执行选项卡组件 fit : true, //铺满容器, border : false, //不显示选项卡容器边框 }); });
nav.php,导航数据页
<?php require \'config.php\'; $id = isset($_POST[\'id\']) ? $_POST[\'id\'] : 0; //判断是否有传递id,如果有id值为id,如果没有id值为0 //将$id值到数据库去查找nid字段 $query = mysql_query("SELECT id,text,state,iconCls,url FROM easyui_nav WHERE nid=\'$id\'") or die(\'SQL 错误!\'); $json = \'\'; while (!!$row = mysql_fetch_array($query, MYSQL_ASSOC)) { $json .= json_encode($row).\',\'; } $json = substr($json, 0, -1); echo \'[\'.$json.\']\'; mysql_close(); ?>
四,点击对应的导航,远程对应的页面获取数据库信息显示到对应的选项卡
导航js
$(function () { $(\'#nav\').tree({ //将导航元素执行树形结构方法 url : \'nav.php\', //远程加载树形结构数据 lines : true, //显示结构虚线 onLoadSuccess : function (node, data) { //在数据加载成功后触发 if (data) { //data接收的所有目录信息对象,判断目录节点是否存在 $(data).each(function (index, value) { //遍历所有目录 if (this.state == \'closed\') { //判断如果目录对象里的state等于closed,说明此目录有子目录 $(\'#nav\').tree(\'expandAll\'); //展开所有节点 } }); } }, onClick : function (node) { //当用户点击一个目录时 if (node.url) { //判断当前对象的url是否存在,也就是在数据库里的url连接地址 if ($(\'#tabs\').tabs(\'exists\', node.text)) { //判断当前目录名称的选项卡是否打开 $(\'#tabs\').tabs(\'select\', node.text); //如果打开的则选择在当前选项卡上 } else { //如果当然选项卡没有打开 $(\'#tabs\').tabs(\'add\', { //添加一个新选项卡面板 title : node.text, //标题为当前目录的名称 iconCls : node.iconCls, //图标为当前目录的图标 closable : true, //显示关闭按钮 href : node.url + \'.php\', //读取远程数据并显示到面板 }); } } } }); $(\'#tabs\').tabs({ //将布局的id为tabs,也就是内容区块执行选项卡组件 fit : true, //铺满容器, border : false, //不显示选项卡容器边框 }); });
选项卡操作
HTML
<?php session_start(); if (!isset($_SESSION[\'admin\'])) { header(\'location:login.php\'); } ?> <table id="manager"></table> <div id="manager_tool" style="padding:5px;"> <div style="margin-bottom:5px;"> <a href="#" class="easyui-linkbutton" iconCls="icon-add-new" plain="true" onclick="manager_tool.add();">添加</a> <a href="#" class="easyui-linkbutton" iconCls="icon-edit-new" plain="true" onclick="manager_tool.edit();">修改</a> <a href="#" class="easyui-linkbutton" iconCls="icon-delete-new" plain="true" onclick="manager_tool.remove();">删除</a> <a href="#" class="easyui-linkbutton" iconCls="icon-reload" plain="true" onclick="manager_tool.reload();">刷新</a> <a href="#" class="easyui-linkbutton" iconCls="icon-redo" plain="true" onclick="manager_tool.redo();">取消选择</a> </div> <div style="padding:0 0 0 7px;color:#333;"> 查询帐号:<input type="text" class="textbox" name="user" style="width:110px"> 创建时间从:<input type="text" name="date_from" class="easyui-datebox" editable="false" style="width:110px"> 到:<input type="text" name="date_to" class="easyui-datebox" editable="false" style="width:110px"> <a href="#" class="easyui-linkbutton" iconCls="icon-search" onclick="obj.search();">查询</a> </div> </div> <form id="manager_add" style="margin:0;padding:5px 0 0 25px;color:#333;"> <p>管理帐号:<input type="text" name="manager" class="textbox" style="width:200px;"></p> <p>管理密码:<input type="password" name="password" class="textbox" style="width:200px;"></p> <p>分配权限:<input id="auth" class="textbox" name="auth" style="width:205px;"></p> </form> <form id="manager_edit" style="margin:0;padding:5px 0 0 25px;color:#333;"> <input type="hidden" name="id" class="textbox" style="width:200px;"> <p>管理帐号:<input type="text" name="manager_edit" disabled="true" class="textbox" style="width:200px;"></p> <p>管理密码:<input type="password" name="password_edit" class="textbox" style="width:200px;"></p> <p>分配权限:<input id="auth_edit" class="textbox" name="auth_edit" style="width:205px;"></p> </form> <script type="text/javascript" src="js/manager.js"></script>
js
$(function () { $(\'#manager\').datagrid({ //执行数据表格组件 url : \'manager_data.php\', //获取远程数据 fit : true, //面板大小自适应父容器 fitColumns : true, //表格自适应面板 striped : true, //是否显示斑马效果 rownumbers : true, //显示行号 border : false, //是否显示边框 pagination : true, //是否显示分页 pageSize : 20, //每页显示多少条数据 pageList : [10, 20, 30, 40, 50], //可选每页显示多少条数据 pageNumber : 1, //起始页 sortName : \'date\', //默认以什么字段排序 sortOrder : \'desc\', //排序方式 toolbar : \'#manager_tool\', //加载增删改查工具栏区块 columns : [[ //表格数据 { field : \'id\', //数据库id字段 title : \'自动编号\', //标题 width : 100, checkbox : true, //自动编号 }, { field : \'manager\', //数据库管理员字段 title : \'管理员帐号\', width : 100, }, { field : \'auth\', //数据库权限字段 title : \'拥有权限\', width : 100, }, { field : \'date\', //数据库日期字段 title : \'创建日期\', width : 100, }, ]], }); //新增 $(\'#manager_add\').dialog({ //执行对话框组件 width : 350, title : \'新增管理\', modal : true, //遮罩 closed : true, //可以关闭窗口 iconCls : \'icon-user-add\', //图标 buttons : [{ //创建按钮 text : \'提交\', //提交按钮 iconCls : \'icon-add-new\', //图标 handler : function () { //点击提交按钮后触发 if ($(\'#manager_add\').form(\'validate\')) { //判断验证表单是否全部合法 $.ajax({ //执行ajax提交 url : \'addManager.php\', type : \'post\', data : { //提交数据 manager : $(\'input[name="manager"]\').val(), //获取用户名值 password : $(\'input[name="password"]\').val(), //获取密码值 auth : $(\'#auth\').combotree(\'getText\'), //权限文本 }, beforeSend : function () { //提交时 $.messager.progress({ //进度条信息框 text : \'正在新增中...\', }); }, success : function (data, response, status) { //提交成功后 $.messager.progress(\'close\'); //关闭进度条信息框 if (data > 0) { //判断返回添加成功 $.messager.show({ //消息框 title : \'提示\', msg : \'新增管理成功\', }); $(\'#manager_add\').dialog(\'close\').form(\'reset\'); //关闭对话框,重置表单 $(\'#manager\').datagrid(\'reload\'); //重新加载树形表格数据 } else { $.messager.alert(\'新增失败!\', \'未知错误导致失败,请重试!\', \'warning\'); //添加失败提示信息 } } }); } }, },{ text : \'取消\', //取消按钮 iconCls : \'icon-redo\', handler : function () { //点击取消按钮后执行函数 $(\'#manager_add\').dialog(\'close\').form(\'reset\'); //关闭对话框,重置表单 }, }], }); //修改 $(\'#manager_edit\').dialog({ //修改对话框 width : 350, title : \'修改管理\', modal : true, //遮罩锁屏 closed : true, //可以关闭窗口 iconCls : \'icon-user-add\', //图标 buttons : [{ //设置提交按钮 text : \'提交\', iconCls : \'icon-edit-new\', //按钮图标 handler : function () { //点击提交后执行函数 if ($(\'#manager_edit\').form(\'validate\')) { //判断表单的数据是否合法 $.ajax({ //ajax提交数据 url : \'updateManager.php\', type : \'post\', data : { //提交数据 id : $(\'input[name="id"]\').val(), //获取用户名 password : $(\'input[name="password_edit"]\').val(), //获取密码 auth : $(\'#auth_edit\').combotree(\'getText\'), //获取权限文本 }, beforeSend : function () { //提交时 $.messager.progress({ //进度条信息框 text : \'正在修改中...\', }); }, success : function (data, response, status) { //提交后 $.messager.progress(\'close\'); //关闭进度条信息框 if (data > 0) { //判断修改是否成功 $.messager.show({ //消息框 title : \'提示\', msg : \'修改管理成功\', }); $(\'#manager_edit\').dialog(\'close\').form(\'reset\'); //关闭对话框,重置表单 $(\'#manager\').datagrid(\'reload\'); //重新加载数据表格 } else { $.messager.alert(\'修改失败!\', \'未知错误或没有任何修改,请重试!\', \'warning\'); //修改失败提示 } } }); } }, },{ text : \'取消\', //取消按钮 iconCls : \'icon-redo\', handler : function () { //点击取消按钮执行函数 $(\'#manager_edit\').dialog(\'close\').form(\'reset\'); //关闭对话框,重置表单 }, }], }); //管理帐号验证 $(\'input[name="manager"]\').validatebox({ required : true, validType : \'length[2,20]\', missingMessage : \'请输入管理名称\', invalidMessage : \'管理名称在 2-20 位\', }); //管理密码验证 $(\'input[name="password"]\').validatebox({ required : true, validType : \'length[6,30]\', missingMessage : \'请输入管理密码\', invalidMessage : \'管理密码在 6-30 位\', }); //修改管理密码验证 $(\'input[name="password_edit"]\').validatebox({ //required : true, validType : \'length[6,30]\', missingMessage : \'请输入管理密码\', invalidMessage : \'管理密码在 6-30 位\', }); //分配权限验证 $(\'#auth\').combotree({ //树形下拉框 url : \'nav.php\', required : true, //不能为空 lines : true, //显示虚线 multiple : true, //支持多选 checkbox : true, //显示复选框 onlyLeafCheck : true, //只有底层目录才显示复选框 onLoadSuccess : function (node, data) { //在数据加载成功后触发 var _this = this; if (data) { //判断目录对象是否存在 $(data).each(function (index, value) { //遍历出目录对象 if (this.state == \'closed\') { //判断如果有子目录 $(_this).tree(\'expandAll\'); //展开所有目录 } }); } }, }); //增删改查执行对象 manager_tool = { //刷新 reload : function () { //点击刷新执行方法 $(\'#manager\').datagrid(\'reload\'); //重载数据表格 }, //取消全选 redo : function () { //点击取消全选 $(\'#manager\').datagrid(\'unselectAll\'); //取消全选 }, //添加 add : function () { //点击添加按钮执行 $(\'#manager_add\').dialog(\'open\'); //打开添加对话框 $(\'input[name="manager"]\').focus(); //将光标定位到表单 }, //删除 remove : function () { //点击删除按钮执行 var rows = $(\'#manager\').datagrid(\'getSelections\'); //获取数据表格所有选中对象 if (rows.length > 0) { //判断选中对象长度大于0 $.messager.confirm(\'确定操作\', \'您正在要删除所选的记录吗?\', function (flag) { //执行消息提示框,确认或者取消 if (flag) { //点击确认 var ids = []; for (var i = 0; i < rows.length; i ++) { //循环出选中对象 ids.push(rows[i].id); //将选中对象追加到数组 } //console.log(ids.join(\',\')); $.ajax({ //ajax提交 type : \'POST\', url : \'deleteManager.php\', data : { ids : ids.join(\',\'), //数组格式化分隔符 }, beforeSend : function () { //提交中执行函数 $(\'#manager\').datagrid(\'loading\'); //显示载入状态 }, success : function (data) { //提交成功后 if (data) { //判断是否删除了数据 $(\'#manager\').datagrid(\'loaded\'); //隐藏载入状态 $(\'#manager\').datagrid(\'load\'); //重新加载数据表格 $(\'#manager\').datagrid(\'unselectAll\'); //取消所有选中的行 $.messager.show({ //删除消息提示 title : \'提示\', msg : data + \'个管理被删除成功!\', }); } }, }); } }); } else { //如果没有选中任何行 $.messager.alert(\'提示\', \'请选择要删除的记录!\', \'info\'); //提示信息 } }, //修改 edit : function () { //点击修改执行 var rows = $(\'#manager\').datagrid(\'getSelections\'); //获取选中数组 if (rows.length > 1) { //数组长度大于1 $.messager.alert(\'警告操作!\', \'编辑记录只能选定一条数据!\', \'warning\'); //提示只能选中一条 } else if (rows.length == 1) { //判断如果只选择了一条 $.ajax({ //ajax url : \'getManager.php\', type : \'post\', data : { id : rows[0].id, //将要修改的id发送 }, beforeSend : function () { //提交时执行 $.messager.progress({ //提示信息 text : \'正在获取中...\', }); }, success : function (data, response, status) { //提交成功后 $.messager.progress(\'close\'); //关闭提示信息 if (data) { //判断如果获取成功 var obj = $.parseJSON(data); //将JSON转换成js格式 var auth = obj[0].auth.split(\',\'); //获取要修改数据的权限,格式化分隔符 $(\'#manager_edit\').form(\'load\', { //读取数据填充到表单 id : obj[0].id, //将id填充到name为id输入框 manager_edit : obj[0].manager, //将用户名填充到name为manager_edit输入框 //auth_edit : obj[0].auth, }).dialog(\'open\'); //打开对话框 //分配权限 $(\'#auth_edit\').combotree({ //树形下拉框 url : \'nav.php\', //获取树形目录 required : true, //不能为空 lines : true, //显示虚线 multiple : true, //支持多选 checkbox : true, //显示复选框 onlyLeafCheck : true, //只有底层目录显示复选框 onLoadSuccess : function (node, data) { //数据加载成功后触发 var _this = this; if (data) { //判断获取到树形数据 $(data).each(function (index, value) { //遍历目录 if ($.inArray(value.text, auth) != -1) { //查找遍历到的权限名称在数组里的下标,是否等于-1 $(_this).tree(\'check\', value.target); //勾选指定节点,说明是已有权限 } if (this.state == \'closed\') { //判断如果有子目录 $(_this).tree(\'expandAll\'); //展开所有目录 } }); } }, }); } else { //判断如果获取失败 $.messager.alert(\'获取失败!\', \'未知错误导致失败,请重试!\', \'warning\'); //提示失败信息 } } }); } else if (rows.length == 0) { //如果一条没选中 $.messager.alert(\'警告操作!\', \'编辑记录至少选定一条数据!\', \'warning\'); //提示选择信息 } }, }; });
parseJSON()将JSON格式转换成js原生格式