来源
在项目中我们在输入界面会遇到这样的问题,我们要输入的数据尤其是主键不能与数据库里面的数据重复,因此我们需要ajax查询来跟数据库里面的数据比对,进而可以知道该数据是否重复
举个很简单的例子,比如说是 用户ID,用户ID是唯一的,所以不能重复,下一个例子我们就关于用户ID的AJAX查询的详细过程
详细过程
JSP页面提交AJAX查询请求, controller层提供相关数据的比对,然后返回比对值给JSP页面,在JSP页面对比对结果进行然后发出相应的响应
代码
JSP页面的:
将数据取出并且传进neiding控制层里面的repititionname方法去处理,其中responseData是从控制层返回的数据
//在这里写ajax查询判断项目ID是否重复
var login_name = document.getElementById("PROJECT_ID").value;
var JSONObject= {
"PROJECT_ID":login_name
};
$.ajax({
type: 'POST',url: "neiding/repititionname",dataType: 'text',async:false,data:JSONObject,success: function (responseData) {
var x = parseInt(responseData)
if(x==0){
$("#PROJECT_ID").tips({
side:3,msg:'项目ID重复',bg:'#AE81FF',time:2
});
$("#PROJECT_ID").focus();
}
else{
$("#Form").submit();
$("#zhongxin").hide();
$("#zhongxin2").show();
}
},error: function (XMLHttpRequest,textStatus,errorThrown) {//请求失败处理函数
//console.log("请求失败,无法获取分组数据");
alert("失败了");
}
});
控制层代码:
从数据库查询出数据跟JSP调出来的项进行比对,相同就返回0,不同就返回1,这样的JSP页面就知道了。
/**保存 * @param * @throws Exception */
@RequestMapping(value="/repititionname") //这里写控制代码,要完成很多事情
public @ResponseBody void login_name(HttpServletRequest request,HttpServletResponse response) throws Exception{
String LOGIN_NAME= request.getParameter("PROJECT_ID");
System.out.println("测试策划师"+LOGIN_NAME);
PageData pd = new PageData();
pd = this.getPageData();
List<PageData> varList = neidingService.listAll(pd);
int flag = 1;
for(PageData s:varList){
if(s.getString("PROJECT_ID").equals(LOGIN_NAME)){
System.out.println("NAME+"+s.getString("LOGIN_NAME"));
response.setCharacterEncoding("UTF-8");
response.getWriter().write("0");
flag = 0;
}
}
if(flag==1) {
response.setCharacterEncoding("UTF-8");
response.getWriter().write("1");
}
}