1、管理员首页制作与数据导入
2、编辑模板的制作与数据导入
3、Ajax数据提交与管理员信息更新
代码如下
注意:原login.php中设置的Session::set('user_info',$data);修改为Session::set($admin->toArray);
数据库中添加两个字段分别维is_upadate int default 1 comment ‘可以更新’ ,update_time int(11) comment ' 修改时间';
admin.php
<?php
namespace app\admin\controller;
use app\admin\common\Base;
use think\Request;
use app\admin\model\Admin as AdminModel;
class Admin extends Base
{
//现实管理员列表
public function index()
{
// dump(Session::get());
//$this->isLogin();
//1、从数据库获取管理员数据
$admin = AdminModel::get(['username'=>'admin']);
//print_r($admin);
/* $admin=[
'id'=>1,
'username'=>'admin',
'email'=>'jsjd#@qq.com',
'login_count'=>5,
'last_time'=>154545
];*/
//2、将当前的管理员信息赋值给模版
$this->assign('admin',$admin);
//3、渲染管理员页面
return $this->fetch('admin_list');
}
//渲染编辑模版
public function edit(Request $request)
{
//1、从数据库获取管理员数据
$admin = AdminModel::get($request->param('id'));
//2、将当前的管理员信息赋值给模版
$this->assign('admin',$admin);
return $this->fetch('admin_edit');
}
//执行更新操作
public function update(Request $request)
{
if($request->isAjax(true)){
//获取提交的数据自动过滤空值
$data = array_filter($request->param());
//设置更新条件
$map = ['is_update'=>$data['is_update']];
//更新用户列表
$res = AdminModel::update($data,$map);
//更新成功
$status = 1;
$message = '更新成功';
if(is_null($res)){
//更新失败
$status = 0;
$message = '更新失败';
}
}
return ['status'=>$status,'message'=>$message];
}
}
admin.php(Model 模型)
<?php
namespace app\admin\model;
use think\Model;
class Admin extends Model
{
public function getLastTimeAttr($val)
{
return date('Y/m/d',$val);
}
public function setPasswordAttr($val)
{
return md5($val);
}
}
admin_list.html
<!DOCTYPE html>
<html>
{include file='public/header' /}
<body>
<div class="x-nav">
<span class="layui-breadcrumb">
<a><cite>首页</cite></a>
<a><cite>会员管理</cite></a>
<a><cite>管理员列表</cite></a>
</span>
<a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" href="javascript:location.replace(location.href);" title="刷新"><i class="layui-icon" style="line-height:30px">ဂ</i></a>
</div>
<div class="x-body">
<table class="layui-table">
<thead>
<tr>
<th>
ID
</th>
<th>
登录名
</th>
<th>
邮箱
</th>
<th>
登陆次数
</th>
<th>
最后登陆时间
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
{$admin.id}
</td>
<td>
{$admin.username}
</td>
<td >
{$admin.email}
</td>
<td>
{$admin.login_count}
</td>
<td >
{$admin.last_time}
</td>
<td class="td-manage">
<a title="编辑" href="javascript:;" onclick="admin_edit('编辑','{:url("admin/edit")}'+'?id='+{$admin.id},'4','','510')"
class="ml-5" style="text-decoration:none">
<i class="layui-icon"></i>
</a>
</td>
</tr>
</tbody>
</table>
<div id="page"></div>
</div>
{include file="public/base_js" /}
<script>
layui.use(['laydate','element','laypage','layer'], function(){
$ = layui.jquery;//jquery
laydate = layui.laydate;//日期插件
lement = layui.element();//面包导航
layer = layui.layer;//弹出层
//以上模块根据需要引入
laypage({
cont: 'page'
,pages: 100
,first: 1
,last: 100
,prev: '<em><</em>'
,next: '<em>></em>'
});
});
//编辑
function admin_edit(title, url, id, w, h) {
x_admin_show(title, url, w, h);
}
</script>
</body>
</html>
admin_edit.html
<!DOCTYPE html>
<html>
{include file='public/header' /}
<body>
<div class="x-body">
<form class="layui-form">
<div class="layui-form-item">
<label for="username" class="layui-form-label">
<span class="x-red">*</span>登录名
</label>
<div class="layui-input-inline">
<input type="text" id="username" name="username" required="" lay-verify="required" value="{$admin.username}"
autocomplete="off" class="layui-input" disabled>
</div>
<div class="layui-form-mid layui-word-aux">
<span class="x-red">*</span>用户名禁止修改
</div>
</div>
<div class="layui-form-item">
<label for="L_email" class="layui-form-label">
<span class="x-red">*</span>邮箱
</label>
<div class="layui-input-inline">
<input type="text" id="L_email" name="email" required="" lay-verify="email" value="{$admin.email}"
autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">
<span class="x-red">*</span>
</div>
</div>
<div class="layui-form-item">
<label for="L_pass" class="layui-form-label">
<span class="x-red">*</span>新密码
</label>
<div class="layui-input-inline">
<input type="password" id="L_pass" name="password" required="" lay-verify="password"
autocomplete="off" class="layui-input" value="" placeholder="密码">
</div>
<div class="layui-form-mid layui-word-aux">
6到16个字符
</div>
</div>
<!-- 添加隐藏字段 -->
<input type="hidden" name="id" value="{$Think.session.user_info.id}">
<input type="hidden" name="is_update" value="{$Think.session.user_info.is_update}">
<div class="layui-form-item">
<label for="L_repass" class="layui-form-label">
</label>
<button class="layui-btn" lay-filter="save" lay-submit="" id="submit">
保存
</button>
</div>
</form>
</div>
{include file="public/base_js" /}
<script>
layui.use(['form','layer'], function(){
$ = layui.jquery;
var form = layui.form()
,layer = layui.layer;
});
</script>
<script>
$(function(){
$("#submit").on('click',function(){
$.ajax({
type: 'POST',
url: "{:url('admin/update')}",
data: $(".layui-form").serialize(),
dataType: "json",
success: function(data){
if (data.status == 1) {
alert(data.message);
window.location.href = "{:url('admin/index')}";
} else {
alert(data.message);
window.location.href = "{:url('admin/edit')}";
}
}
})
})
})
</script>
</body>
</html>