学生列表页的模板效果如下:
上面的页面中,主要有:
- 导航
- 表格
- 按钮
- 模态窗口
- ajax提交
参考代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>学生列表</title>
<{include file="head"}>
<style>
.title {
margin: 10px auto;
text-align: center;
}
</style>
</head>
<body>
<div class="container">
<{include file="nav"}>
<h3 class="title">学生列表</h3>
<table class="table table-bordered table-hover">
<tr>
<td>学号</td>
<td>姓名</td>
<td>性别</td>
<td>年龄</td>
<td>操作</td>
</tr>
<{volist name="student" id="row"}>
<tr>
<td>{$row.no}</td>
<td>{$row.name}</td>
<td>{$row.sex}</td>
<td>{$row.age}</td>
<td>
<a href="{:url('edit')}?no={$row.no}" class="btn btn-primary">编辑</a>
<a href="javascript:delstudent('{$row.no}')" class="btn btn-danger">删除</a>
</td>
</tr>
<{/volist}>
</table>
</div>
</body>
</html>
<script>
function delstudent(no) {
var ret = window.confirm('真得要删除学号' + no + '的学生吗')
if (ret) {
window.location.href = "{:url('del')}?no=" + no;
}
}
</script>
在body区,有这样一行代码:
<{include file="nav"}>
这里包含了另外一个模板文件nav.html
nav.html代码参考如下:
<nav class="navbar navbar-inverse">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="javascript:void(0)">学生管理系统</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="{:url('index/student/all')}">学生列表</a></li>
<li><a href="{:url('index/student/add')}">添加学生</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false">{$Think.session.admin} <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#" data-toggle="modal" data-target="#myModal">修改密码</a></li>
<li role="separator" class="divider"></li>
<li><a href="{:url('index/index/logout')}">退出</a></li>
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="exampleModalLabel">更新密码</h4>
</div>
<div class="modal-body">
<form id="form1" action="{:url('index/admin/updatepwd')}" method="post">
<div class="form-group">
<label for="newpassword" class="control-label">新密码</label>
<input type="password" class="form-control" id="newpassword" name="newpassword">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" id="btn-save" class="btn btn-primary">保存</button>
</div>
</div>
</div>
</div>
<script>
$('#btn-save').click(function () {
var newpwd = $('#newpassword').val();
$.post("{:url('admin/updatepwd')}",{newpwd:newpwd},function(data){
if(data.error==false){
alert('更新密码成功');
window.location.href="{:url('index/index/index')}"
}else{
alert('更新密码失败');
}
},'json');
})
</script>
在nav.html中,主要实现 了导航、模态窗口、ajax(异步)提交 三部分代码
有关导航,可以参见bootstrap的网站,
https://v3.bootcss.com/components/#navbar
我们可以从网站直接复制源码,然后修改成自己所需要的
模态窗口的实现,可以参见bootstrap网站,详见:
https://v3.bootcss.com/javascript/#modals
有关异步提交,我们使用jquery已经封装好的异步提交,$.post
相关资料,可以详见:https://www.w3school.com.cn/jquery/jquery_ajax_get_post.asp