회원가입을 눌럿을 때 ID중복체크는 그냥 컨트롤로에서 처리해줬지만(조빱이라)
중복체크 버튼을 동작하기 위해선 또 컨트롤러 만들어서 하는게 좋단다.
고래서 중복체크 버튼에 온클릭주고 idCheck만들어서 호출했다.
function idCheck(){
var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");
var text = $("#userId").val();
var regexp = /[0-9a-zA-Z]/; // 숫자,영문,특수문자
// var regexp = /[0-9]/; // 숫자만
//var regexp = /[a-zA-Z]/; // 영문만
for(var i=0; i<text.length; i++){
if(text.charAt(i) != " " && regexp.test(text.charAt(i)) == false ){
alert("한글이나 특수문자는 입력불가능 합니다.");
$('#userId').val("");
return;
}
if (text.length < 4) {
alert('ID는 4자 이상입니다.');
$('#userId').val("");
return;
}
else{
var userId = document.getElementById('userId').value;
var data2 = {userId: userId};
var data = JSON.stringify(data2);
$.ajax({
type : "POST",
url : "<c:url value='/join/IdCheck'/>",
data : data,
cache : false,
contentType : "application/json;charset=UTF-8",
beforeSend : function (xhr)
{
xhr.setRequestHeader(header, token);
},
success :function(data){
//alert(data);
//console.log(data);
if (data == 1) {
alert("이미존재하는 아이디 입니다.");
$('#userId').val("");
return false;
}else{
alert("사용가능한 아이디 입니다.");
return false;
}
},
error:function(request,status,error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
return;
}
}
}
중복체크는 쿼리할때 COUNT를 사용해서
SELECT COUNT(*)
FROM member
WHERE userid = #{userId}
#{userId}이녀석이 있으면 카운트가 1을 반환하고 없으면 0을 반환한다.
왜냐면 카운트는 저녀석이 포함된 행의 갯수를 가져오는데 아이디값이 있으면 1개의 행
없으면 0개의 행을 가져오기 때문이다.
그리고 다시 아작스에서 받아서 처리해주긔!
'IT' 카테고리의 다른 글
CentOS 6.7 iso (0) | 2017.07.11 |
---|---|
Spring 회원가입 ID중복 검사 (0) | 2017.03.14 |
jsp에서 controller로 데이터 ajax로 보내기 (0) | 2017.03.08 |