摘要:总结:管理员的列表的渲染与输出:通过控制器完成对数据表的读取,并利用layui的表格将管理员信息进行循环输出,因管理员成员数并不多,可以不添加分页。管理员添加操作时需注意,用户名作为唯一登录条件,用户名不能重名,所以在添加操作前需读取数据表,查询该用户名是否存在。管理员的编辑页面与添加页面基本相同,所以可以将添加页面作为编辑页面使用,但需注意ID的传递以及是编辑还是添加的条件的判断,ID传递中会有
总结:
管理员的列表的渲染与输出:通过控制器完成对数据表的读取,并利用layui的表格将管理员信息进行循环输出,因管理员成员数并不多,可以不添加分页。
管理员添加操作时需注意,用户名作为唯一登录条件,用户名不能重名,所以在添加操作前需读取数据表,查询该用户名是否存在。
管理员的编辑页面与添加页面基本相同,所以可以将添加页面作为编辑页面使用,但需注意ID的传递以及是编辑还是添加的条件的判断,ID传递中会有空值存在,注意类型转换。
代码如下:
控制器代码:
<?php namespace app\admins\controller; use think\Controller; use Util\SysDb; class Admin extends Base{ public function index(){ // 加载管理员列表 $data['lists'] = $this->db->table('admins')->order('id desc')->lists(); return $this->fetch('',$data); } // 添加管理员 public function add(){ $id = (int)input('get.id');//作为编辑用的管理员ID $data['item'] = $this->db->table('admins')->where(array('id'=>$id))->item(); return $this->fetch('',$data); } // 保存管理员 public function save(){ $id = (int)input('post.id'); $data['username'] = trim(input('post.username')); $data['gid'] = (int)input('post.gid'); $data['truename'] = trim(input('post.truename')); $data['status'] = (int)input('post.status'); $password = input('post.password'); if(!$data['username']){ exit(json_encode(array('code'=>1,'msg'=>'用户名不能为空'))); } if(!$data['gid']){ exit(json_encode(array('code'=>1,'msg'=>'角色不能为空'))); } if(!$data['truename']){ exit(json_encode(array('code'=>1,'msg'=>'姓名不能为空'))); } if($id==0 && !$password){ exit(json_encode(array('code'=>1,'msg'=>'请输入密码'))); } if($password){ $data['password'] = md5($data['username'].$password); } $res = true; if($id == 0){ $item = $this->db->table('admins')->where(array('username'=>$data['username']))->item(); if($item){ exit(json_encode(array('code'=>1,'msg'=>'该用户已经存在'))); } $data['add_time'] = time(); $res = $this->db->table('admins')->insert($data); }else{ $res = $this->db->table('admins')->where(array('id'=>$id))->update($data); } if($res){ exit(json_encode(array('code'=>0,'msg'=>'保存成功'))); }else{ exit(json_encode(array('code'=>1,'msg'=>'保存失败'))); } } // 删除管理员 public function delete(){ $id = (int)input('post.id'); $res = $this->db->table('admins')->where(array('id'=>$id))->delete(); if(!$res){ exit(json_encode(array('code'=>1,'msg'=>'删除失败'))); } exit(json_encode(array('code'=>0,'msg'=>'删除成功'))); } }
7.管理员index.html代码:
<!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="/static/plugins/layui/css/layui.css"> <script type="text/javascript" src="/static/plugins/layui/layui.js"></script> <style type="text/css"> .header span{background: #009688;margin-left: 30px;padding: 10px;color: #ffffff;} .header button{float: right;margin-top: -5px;} .header div{border-bottom: solid 2px #009688;margin-top: 8px;} </style> </head> <body style="padding: 10px;"> <div class="header"> <span>管理员列表</span> <button class="layui-btn layui-btn-sm" onclick="add()">添加</button> <div></div> </div> <table class="layui-table"> <thead> <tr> <th>ID</th> <th>用户名</th> <th>真实姓名</th> <th>角色</th> <th>状态</th> <th>添加时间</th> <th>操作</th> </tr> </thead> <tbody> {volist name='$lists' id="vo"} <tr> <td>{$vo.id}</td> <td>{$vo.username}</td> <td>{$vo.truename}</td> <td>{$vo.gid}</td> <td>{$vo.status==0?'正常':'<span style="color: red;">禁用</span>'}</td> <td>{:date('Y-m-d H:i:s',$vo.add_time)}</td> <td> <button class="layui-btn layui-btn-xs" onclick="add({$vo.id})">编辑</button> <button class="layui-btn layui-btn-danger layui-btn-xs" onclick="del({$vo.id})">删除</button> </td> </tr> {/volist} </tbody> </table> </body> </html> <script type="text/javascript"> layui.use(['layer'],function(){ layer = layui.layer; $ = layui.jquery; }); // 添加 function add(id){ layer.open({ type:2, title:id>0?'编辑管理员':'添加管理员', shade:0.3, area:['480px','420px'], content:'/index.php/admins/admin/add?id='+id }); } // 删除 function del(id){ layer.confirm('确定要删除吗?',{ icon:3, btn:['确定','取消'] },function(){ $.post('/index.php/admins/admin/delete',{'id':id},function(res){ if(res.code>0){ layer.alert(res.msg,{'icon':2}); }else{ layer.msg(res.msg,{'icon':1}); setTimeout(function(){window.location.reload();},1000); } },'json'); }); } </script>
8.管理员add.html代码:
<!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="/static/plugins/layui/css/layui.css"> <script type="text/javascript" src="/static/plugins/layui/layui.js"></script> </head> <body style="padding: 10px;"> <form class="layui-form"> <input type="hidden" name="id" value="{$item.id}"> <div class="layui-form-item"> <label class="layui-form-label">用户名</label> <div class="layui-input-inline"> <input type="text" class="layui-input" name="username" value="{$item.username}" <?=$item['id']>0?'readonly':''?>> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">角色</label> <div class="layui-input-inline"> <select name="gid"> <option value="1">系统管理员</option> <option value="2">开发人员</option> </select> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">密码</label> <div class="layui-input-inline"> <input type="password" class="layui-input" name="password"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">姓名</label> <div class="layui-input-inline"> <input type="text" class="layui-input" name="truename" value="{$item.truename}"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">状态</label> <div class="layui-input-inline"> <input type="checkbox" name="status" lay-skin="primary" title="禁用" value="1" {$item.status?'checked':''}> </div> </div> </form> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" onclick="save()">保存</button> </div> </div> </body> </html> <script type="text/javascript"> layui.use(['layer','form'],function(){ var form = layui.form; layer = layui.layer; $ = layui.jquery; }); function save(){ var id = parseInt($('input[name="id"]').val()); var username = $.trim($('input[name="username"]').val()); var pwd = $.trim($('input[name="password"]').val()); var truename = $.trim($('input[name="truename"]').val()); var gid = $('select[name="gid"]').val(); if(username==''){ layer.alert('请输入用户名',{'icon':2}); return; } if(isNaN(id) && pwd==''){ layer.alert('请输入密码',{'icon':2}); return; } if(truename==''){ layer.alert('请输入真实姓名',{'icon':2}); return; } $.post('/index.php/admins/admin/save',$('form').serialize(),function(res){ if(res.code>0){ layer.alert(res.msg,{'icon':2}); }else{ layer.msg(res.msg,{'icon':1}); setTimeout(function(){parent.window.location.reload();},1000); } },'json'); } </script>
批改老师:韦小宝批改时间:2018-11-23 09:00:36
老师总结:不错!一如既往写的都很认真!继续加油吧!!!