客车网上售票系统(4)
一、今日完成任务
管理员功能:
1、个人信息修改
二、页面展示:

三、核心源码展示:
1)前台页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>许昌汽车客运网</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link href="${pageContext.request.contextPath}/css/reset.css" rel="stylesheet" />
<link href="${pageContext.request.contextPath}/css/iconfont.css" rel="stylesheet" />
<link href="${pageContext.request.contextPath}/css/index.css" rel="stylesheet" />
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/css/layui.css">
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/css/login.css">
<link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/css/main.css">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/layui.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.11.1.min.js"></script>
<style type="text/css">
.content {
width: 90%;
height:500px;
border: 1px dotted #ccc;
border-top: 3px solid #01AAED;
margin-top: 15px;
padding-top: 20px;
background-color: white;
}
.content_1{
width:400px;
margin: auto;
margin-top: 70px;
}
.content_top{
height: 50px;
border: 1px solid #01AAED;
padding: 20px 0px;
}
.inputdiv{
display:flex;
border: 1px solid #D2D2D2!important;
background-color: #fff;
width:120px;
height: 38px;
line-height: 38px;
padding: 0px 19px;
}
.inputitem {
float: left;
}
.layui-breadcrumb, .layui-tree-btnGroup {
visibility: visible;
}
.layui-btn {
display:flex;
border: 1px solid #D2D2D2!important;
background-color: #01AAED;
width:110px;
height: 38px;
line-height: 38px;
padding: 0px 19px;
margin-left: 100px;
}
/*地址弹出框*/
#select{
width:400px;
height:205px;
position:absolute;
top:160px;
left:380px;
background:#eeeeee;
border:1px solid #01AAED;
z-index: 10;
}
.cities{
width:60px;
height:25px;
line-height:25px;
margin:5px 5px 0 5px;
float:left;
text-align:center;
font-family:'Times New Roman';
font-size:15px;
cursor:pointer;
}
.layui-table thead tr{
background-color: #1E9FFF;
color: white;
}
.fy{
width:100%;
text-align:right;
margin-left:800px;
height: 30px;
}
.fy a{
display: block;
width: 80px;
height:30px;
line-height:30px;
float:left;
background-color:#1E9FFF;
color:white;
border:1px dashed;
margin-right:2px;
text-align: center;
}
.yd{
display: block;
width: 80px;
height:40px;
background-color: #01AAED;
color: white;
line-height: 40px;
text-align: center;
border-radius: 100px;
}
.PublicDownWhole {
height: 100%;
position: relative;
padding: 10px 0 0 0;
}
.layui-layout-admin .layui-body {
position: fixed;
top: 170px;
bottom: 44px;
height:680px;
margin-left: 10px;
}
</style>
</head>
<!-- 车票查询 -->
<body class="layui-layout-body">
<div style="width: 100%;background-color: white;height: 70px;margin: 0px;padding: 0px;">
<div class="top">
<div class="top_left">
<div class="a1"><img src="imgs/logo.jpg"/></div>
<div class="a2">
<p class="p1"><a href="index.jsp" style="font-weight: bolder;font-size: 22px;">许昌汽车客运网站</a></p>
<p class="p2"><span style="font-size: 16px;color: gray;">Passenger Car Website</span></p>
</div>
</div>
<div class="top_right">
<p>欢迎登录许昌汽车客运网</p>
</div>
</div><!-- 顶部结束 -->
</div>
<div class="layui-layout layui-layout-admin">
<div class="layui-header layui-bg-blue">
<!-- 头部区域(可配合layui已有的水平导航) -->
<ul class="layui-nav layui-layout-left">
<li class="layui-nav-item"><a href=""></a></li>
<li class="layui-nav-item layui-this"><a href="${pageContext.request.contextPath}/admin/main.jsp">个人信息</a></li>
<li class="layui-nav-item"><a href="${pageContext.request.contextPath}/admin/user.jsp">用户管理</a></li>
<li class="layui-nav-item"><a href="${pageContext.request.contextPath}/toTicket">票务管理</a></li>
<li class="layui-nav-item">
<a href="${pageContext.request.contextPath}/admin/orders.jsp">订单统计</a>
</li>
</ul>
<ul class="layui-nav layui-layout-right">
<li class="layui-nav-item">
<a href="javascript:;">
<img src="js/images/face/64.gif" class="layui-nav-img">
管理员:${user.urealname}
</a>
<dl class="layui-nav-child">
<dd><a href="">基本资料</a></dd>
<dd><a href="">安全设置</a></dd>
</dl>
</li>
<li class="layui-nav-item"><a href="index.jsp">退出</a></li>
</ul>
</div>
<div class="PublicDownWhole clearfix">
<!--左侧-->
<div class="leftBox Js_leftBox">
<ul>
<a href="${pageContext.request.contextPath}/admin/main.jsp"> <li class="Select"><i class="iconfont icon-yonghuguanli"></i><span>个人信息</span></li></a>
<a href="${pageContext.request.contextPath}/admin/user.jsp">
<li><i class="iconfont icon-tubiao_dingdan"></i><span>用户管理</span></li>
</a>
<a href="${pageContext.request.contextPath}/toTicket">
<li><i class="iconfont icon-fenlei"></i><span>票务管理</span></li>
</a>
<a href="${pageContext.request.contextPath}/admin/orders.jsp"> <li><i class="iconfont icon-weibiaoti1"></i><span>订单统计</span></li></a>
</ul>
</div>
</div>
<div class="layui-body">
<!-- 内容主体区域 -->
<span class="layui-breadcrumb" lay-separator=">>">
<a href="">您现在的位置是:个人信息 修改</a>
</span>
<div class="content">
<div class="content_1">
<form class="addvoteform layui-form">
<input type="hidden" id="uid"/>
<div class="layui-form-item">
<label class="layui-form-label">用户名:</label>
<div class="layui-input-inline">
<input type="text" id="uname" required lay-verify="required" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">*</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">密码:</label>
<div class="layui-input-inline">
<input type="text" id="pass" required lay-verify="required" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">*</div>
</div>
<div class="layui-form-item" id="spwd">
<label class="layui-form-label">重复密码:</label>
<div class="layui-input-inline">
<input type="text" id="spass" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">*</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">身份证号:</label>
<div class="layui-input-inline">
<input type="text" id="ucard" required lay-verify="identity" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">*</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">真实姓名:</label>
<div class="layui-input-inline">
<input type="text" id="urealname" required lay-verify="required" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">*</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">手机号码:</label>
<div class="layui-input-inline">
<input type="text" id="tel" required lay-verify="phone" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">*</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" id="commit" lay-submit lay-filter="formDemo">修改</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="footer0">
<div class="footer_l">使用条款 | 隐私保护</div>
<div class="footer_r">© 2020 (许昌)客运服务有限公司 许ICP备0000000号</div>
</div>
</div>
<script type="text/javascript">
var form;
$(function(){
var layer;
var flag=1;
layui.use('layer', function(){
layer = layui.layer;
});
$("#spwd").css("display","none");
$("#urealname").attr("readonly",true);
$("#urealname").css("background-color","#f2f2f2");
$("#ucard").attr("readonly",true);
$("#ucard").css("background-color","#f2f2f2");
$("#pass").blur(function(){
flag=0;
$("#spwd").css("display","block");
});
$.ajax({
type:"post",
url:"${pageContext.request.contextPath}/selectUser",
dataType:"json",
success:function(data){
$("#uid").val(data[0].uid);
$("#uname").val(data[0].uname);
$("#pass").val(data[0].upwd);
$("#ucard").val(data[0].ucard);
$("#urealname").val(data[0].urealname);
$("#tel").val(data[0].tel);
}
});
layui.use('form', function(){
var $ = layui.jquery;
form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
form.on("select(test)",function(data){
var p=$("#span_price").text();
//获取下拉框的值
var ty=$("#stu option:selected").text();
if(ty=='成人'){
$("#price").val(p);
}
if(ty=='学生'){
$("#price").val(p*0.8);
}
});
form.render("select");
form.on('submit(formDemo)', function (data) {
//获取用户输入值
var uid=$("#uid").val();
var name=$("#uname").val();
var pwd=$("#pass").val();
var spwd=$("#spass").val();
var tel=$("#tel").val();
if(flag!=1){
if(pwd!=spwd){
layer.tips("两次密码输入不一致", '#spass',{tips:[2,'red']});
return;
}
}
//layer.msg('输入正确,正在提交...',{offset:['600px','1200px']});
//ajax提交登录
var content="uid="+uid+"&uname="+name+"&upwd="+pwd+"&tel="+tel;
$.ajax({
url:"updateUser",
type:"post",
data:content,
success:function(data){
if(data=='true'){
layer.alert("修改成功", {icon: 1,offset:['400px','900px'],btn:['确定'],yes:function(){
location.reload();
}});
}else{
layer.alert("修改失败", {icon: 2,offset:['400px','900px'],btn:['确定'],yes:function(){
location.reload();
}});
}
}
});
return false;
});
});
});
//光标离开事件
layui.use('layer', function(){
var layer = layui.layer;
$("#uname").blur(function(){
//6-16位字母、数字或“_”,需字母开头
//var reg=/^[a-zA-Z]\w{5,15}$/;
var reg= /^(\w){6,20}$/;
//获取用户输入值
var name=$("#uname").val();
if(!reg.test(name)){
layer.tips("只能输入6-20个字母、数字、下划线", '#uname',{tips:[2,'red']});
$("#uname").val("");
}
});
//密码
$("#pass").blur(function(){
//6-20位字母、数字符号
var reg=/^[a-zA-Z]\w{5,15}$/;
//获取用户输入值
var pwd=$("#pass").val();
if(!reg.test(pwd)){
layer.tips("6-16位字母、数字或“_”,需字母开头", '#pass',{tips:[2,'red']});
$("#pass").val("");
}
});
$("#ucard").blur(function(){
//6-20位字母、数字符号
var reg= /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
//获取用户输入值
var ucard=$("#ucard").val();
if(!reg.test(ucard)){
layer.tips("请输入正确的身份证号", '#ucard',{tips:[2,'red']});
$("#ucard").val("");
}
});
$("#urealname").blur(function(){
//6-20位字母、数字符号
var reg= /^[\u4e00-\u9fa5]{2,4}$/;
//获取用户输入值
var urealname=$("#urealname").val();
if(!reg.test(urealname)){
layer.tips("请输入2-4位中文", '#urealname',{tips:[2,'red']});
$("#urealname").val("");
}
});
$("#tel").blur(function(){
//6-20位字母、数字符号
var reg= /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;
//获取用户输入值
var tel=$("#tel").val();
if(!reg.test(tel)){
layer.tips("请重新输入(中国11位手机号)", '#tel',{tips:[2,'red']});
$("#tel").val("");
}
});
});
</script>
</body>
</html>
2)后台代码
1 @RequestMapping(value="/selectUser",produces={"application/json;charset=utf-8"}) 2 @ResponseBody 3 public String selectUser(HttpServletRequest request){ 4 //注册 5 Userinfo u=(Userinfo) request.getSession().getAttribute("user"); 6 Userinfo findUserById = userService.findUserById(u.getUid()); 7 return JSONArray.fromObject(findUserById).toString(); 8 } 9 10 //修改用户 11 @RequestMapping("/updateUser") 12 @ResponseBody 13 public String updateUser(Userinfo userinfo,HttpServletRequest request){ 14 int updateUser = userService.updateUser(userinfo); 15 System.out.println("updateUser========"+updateUser); 16 if(updateUser>0){ 17 return "true"; 18 } 19 return "false"; 20 }
dao层
1 //修改用户 2 @Update("update userinfo set uname=#{uname},upwd=#{upwd},tel=#{tel} where uid=#{uid}") 3 public int updateUser(Userinfo user); 4 5 //根据id查询 6 @Select("select * from userinfo where uid=#{uid}") 7 public Userinfo findUserById(int id); 8
三、遇到的问题:
1)无
四、项目燃尽图更新:


浙公网安备 33010602011771号