2.实现添加功能:有两个和后端交互的接口
根据用户的身份显示登陆界面:
进行插入操作:
1)在我们的前端直接获取到用户名,密码,确认密码,年龄,QQ,邮箱,判断他们是否为空,检测密码和确认密码是否一致
2)将这些参数传递到我们的后端,添加操作成功了,我们就返回一个1,失败我们就返回一个数字-1
3)在这里面我们还是要注意,我们的有几个控件
1.比如说我们想要获取到性别这样的控件(input type=radio)
<input id="man" type="radio" name="sex" value="男" checked="checked">男 <input id="women" type="radio" name="sex" value="女">女 当我们的单选框中的name属性一样的时候,我们才可以进行单选
该怎们进行实现呢?
针对上面的控件:
jQuery("input[name=sex]:checked").val(); 1)先通过name=sex来进行获取到input的radio控件 2)checked拿到选中的控件 3)val()方法可以拿到性别信息是因为input里面有value属性
2.我们还要要拿到籍贯的控件:select标签,里面有id属性
<select name="address" id="address" class="form-control"> <option value="北京">北京</option> <option value="上海">上海</option> <option value="广州">广州</option> </select> jQuery("#address").val-----针对select标签来进行设置 根据id来进行取值
当我们的用户进行添加操作的时候,后端在继续进行插入的时候,如果前端请求的参数User对象,当User对象的IdAdmin是1的时候,表明当前用户是管理员,他要进行添加管理员操作,我们要验证当前登录的用户是否是管理员!!!!我们就通过HttpSession中的Session对象来进行判断:
<div class="form-group" id="adminDiv" style="display: none;"> <label for="email">管理员:</label> <input id="admin_yes" type="radio" name="isadmin" value="1"/>是 <input id="admin_no" type="radio" name="isadmin" value="0" checked="checked"/>否 </div> //上面有一个display:none的属性表示不会进行显示里面的内容
前端代码:向那些非必传的参数直接进行获取到val()就可以了,但是仍然进行校验的比如说用户名和密码,我们还是需要先获取到控件的
div class="form-group" style="text-align: center"> <input id="btn_sub" class="btn btn-primary" type="button" value="提交" onclick="mysub()"/> <input id="btn_back" class="btn btn-default" type="button" value="返回" onclick="location.href='list.html'"/> </div> <script> function mysub(){ var username=jQuery("#username"); var password=jQuery("#password"); var password2=jQuery("#password2"); var sex=jQuery("input[name=sex]:checked").val(); var age=jQuery("#age").val(); var address=jQuery("#address").val(); var qq=jQuery("#qq").val(); var email=jQuery("#email").val(); var isAdmin=jQuery("input[name=isadmin]:checked").val();//这里面表示被添加为用户的认识否是超级管理员 //1.对于那些需要进行登录权限的,先获取到控件,对于那些不需要进行监测的,直接获取到内容 //1.先进行校验用户名和密码是否为空,还有确认密码 if(jQuery.trim(username.val())==""){ alert("用户名为空"); username.focus(); return; } if(jQuery.trim(password.val())==""){ alert("您当前输入的密码是空"); username.focus(); return; } if(jQuery.trim(password2.val())==""){ alert("您当前输入的确认密码是空"); username.focus(); return; } //2.判断密码和确认密码是否相同 if(jQuery.trim(password.val())!=jQuery.trim(password2.val())){ alert("您当前输入的密码和确认密码不相同"); username.focus(); return; } //3.向后端发送添加用户的请求 $.ajax({ type:"POST", url:"Java100/addUser", contentType:"application/json;charset=utf-8", data:JSON.stringify( { "userName":username.val(), "passWord":password.val(), "sex":sex, "age":age, "address":address, "qq":qq, "email":email, "isAdmin":isAdmin, } ), success:function(data,status){ if(data!=null&&data.data>0){ alert("恭喜添加成功"); if(confirm("是否继续添加?")){ location.href=location.href; }else{ location.href="list.html"; } }else{ alert("您的用户名重复"); } } }); }
实现修改操作:
先要把对应用户的信息展示出来,所以说会进行查询,查询出来之后再给用户进行展示,展示完成之后用户再去进行修改,修改完成之后在进行提交,提交修改完成之后在跳转到列表页
当前我们的项目是不能够修改超级管理员的,况且我们的登陆名字是不可以进行修改的
1)从我们的url中获取到UserID(前端),根据location.search来进行查询:
错误代码 console.log(getParamValue()); function getParamValue(){ //获取到前端的url参数 var value=""; var queryString=location.search; if(location.search==null){ return ""; } var querys=queryString.substring(1,queryString.length);//这个操作是去掉queryString中的? console.log(querys); var kvs=querys.split("&"); for(let data of kvs){ var str=data.substring("="); for(let message of str){ if(message=="userID"){ return str[1]; } } return ""; } }
2)向后端发送ajax请求,展示信息(展示用户信息,浏览器进行循环拼接页面)
3)用户进行编辑信息再去提交信息(这时候又发送了一个ajax请求)
涉及到的安全问题:
再进行展示页面的时候先要获得用户登录权限的校验,还有查看权限的校验普通用户是不能进行编辑超级管理员的信息的
在我们进行编辑和提交信息的时候也是要做上面两个步骤的校验