/ 知识库     / 试卷库

修改个人信息

用户个人信息一般包括账号和个人基础信息两方面,已注册账号不允许修改,但可以修改密码,个人基础信息如登录名、真实姓名、性别、出生日期等。

在“用户中心”点击账号(邮箱)显示当前用户个人信息,并提供修改操作。

1、为账号(邮箱)添加操作链接

<a href="#" ><i class="fa fa-user fa-fw"></i> </a>

2、定义响应函数,加载用户数据,提供操作入口

function getUser(){
    $.ajax({
            type:'GET',
            async:true,
            url:'/user',
            dataType:'jsonp',
            success:function(result){
                if(null==result.obj)
                    window.location="/user/login.html";
                else{
                    $('#subject').html(result.obj.realName);
                    var htm='<a onclick="chgName()">修改名称</a> &nbsp;&nbsp;<a onclick="chgPswd()">修改密码</a>';
                    $('#secondSubject').html(htm);
                    $('#content').html('');
                }
            },
        });
}

3、响应修改

function chgName(){
            $.ajax({
                    type:'GET',
                    async:true,
                    url:'/user',
                    dataType:'jsonp',
                    success:function(result){
                        if(null==result.obj)
                            window.location="/user/login.html";
                        else{
                           var htm='<div class="form-group input-group col-md-4">';
                           htm+='<span class="input-group-addon" style="width:80px">登 录 名</span>';
                           htm+='<input type="text" id="loginName" class="form-control" placeholder="登录名" value="'+result.obj.loginName+'">';
                           htm+='</div>';
                           htm+='<div class="form-group input-group col-md-4">';
                           htm+='<span class="input-group-addon" style="width:80px">真实姓名</span>';
                           htm+='<input type="text" id="realName" class="form-control" placeholder="真实姓名" value="'+result.obj.realName+'">';
                           htm+='</div>';
                           htm+='<button type="submit" class="btn btn-default" onclick="doChgName()">确认提交</button>'
                           $('#content').html(htm);
                        }
                    },
                });
}

4、执行修改

function doChgName(){
            var loginName=$('#loginName').val();
            var realName=$('#realName').val();
            $.post("/user",{loginName:loginName,realName:realName},function(result){
                var msg='操作成功';
                if(result!=1)
                    msg='操作失败';
                easyDialog.open({
                    container : {
                        content : msg
                    },
                    autoClose : 2000
                });
               
            });
            getUser();
        }

5、Servlet代码

public void doPost(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		String loginName=request.getParameter("loginName");
		String realName=request.getParameter("realName");
		
		Connection con=null;
		PreparedStatement pstmt=null; 
		try{
			Class.forName("com.mysql.jdbc.Driver"); 
			String url="jdbc:mysql://localhost:3306/my_db?useUnicode=true";
			url+="&characterEncoding=utf-8&serverTimezone=Asia/Shanghai"; 
			con=DriverManager.getConnection(url,"root","");
			pstmt=con.prepareStatement("update user set loginName=?,realName=? where email=?");
		    pstmt.setString(1,loginName);
		    pstmt.setString(2,realName);
		    pstmt.setString(3,(String)request.getSession().getAttribute("USERINSESSION"));
			int n=pstmt.executeUpdate();
			
			response.setCharacterEncoding("UTF-8");
			PrintWriter writer = response.getWriter();
			writer.write(String.valueOf(n));
			writer.close();
		}catch(Exception e){
		}finally{
			if(pstmt!=null)
				try {
					pstmt.close();
				} catch (SQLExc