ajax 를 통한 회원 아이디 중복 체크
본문
그누보드5에서 자동으로 지원 하는것 외에
중복체크 버튼으로 아이디를 중복 체크 하기 위해
아래처럼 만들었습니다.
id.php
<input type="id" id="id">
<span id="id_check">중복확인</span>
<script>
$('#id_check').click(functio() {
var reg_mb_id= $('#id').val();
$.ajax({
type: 'post',
url: 'id_check.php',
data: { reg_mb_id: reg_mb_id},
success: function(data) {
alert(data);
}
});
});
</script>
id_check.php
include_once('./_common.php');
$mb_id = trim($_POST['reg_mb_id']);
$strsql = "SELECT count(*) as cnt FROM g5_member WHERE mb_id = '$mb_id'";
$result = sql_query($strsql);
$num = sql_num_rows($result);
return $num;
id.php 에서 id_check.php 로 아이디 값을 보내 검색 된 값을 받아오는 것으로 했는데요.
공백만 받아와 경고창으로 띄워 주거나 작동을 하지 않습니다.
1. 제가 ajax를 제대로 사용 하고 있는지?
2. ajax는 작동 하지만 왜 공백값만 받아 오는지?
3. 전체적으로 손볼곳이 있는지?
알고 싶습니다.
자료가 부족하다면 말씀해주세요! 바로 보충 하도록 하겠습니다.
!-->!-->답변 6
$result = sql_fetch($strsql); 로 해보세요 잘못적었네요
ajax는 return으로 찍기보다는 echo로 찍어서 처리해 주시면 됩니다.
sql_num_rows() 을 하시면 무조건 1만 출력해줄겁니다.
그리고 플라이 님 말씀대로
echo $num;
로 쓰세요.
저는
die($num);
을 선호합니다.
$nums의 데이터가 없고 $num으로 해보시면 찍히실텐데요
$result = sql_query($strsql);
$num = sql_num_rows($result);
return $num;
부분을
$row= sql_fetch($strsql);
echo $row['cnt'] 로 변경해보세요
지금 하신건 sql_num_rows는 결과 수니 카운트를 하시는거니 항상 결과가 있어서 참일겁니다.
이렇게 수정해 보세요
1.id.php
<input type="text" name="mb_id" id="id">
<span id="id_check">중복확인</span>
<script>
$('#id_check').click(function() {
var reg_mb_id= $('#id').val();
$.ajax({
type: 'post',
url: './id_check.php',
data: { reg_mb_id: reg_mb_id},
success: function(data) {
var gubun = data.substr(0,1);
var reg_mbid = data.substr(2,12);
if (gubun == 'Y') {
alert("동일한 아이디가 존재합니다. 다른 아이디를 입력해주세요.");
$("#id").focus();
} else {
if(reg_mbid == "" || reg_mbid.length < 3) {
alert("정상적인 아이디를 입력해 주시기 바랍니다.");
$("#id").focus();
} else {
alert("사용가능한 아이디입니다.");
$("#reg_mb_password").focus();
}
}
}
});
});
</script>
2. /bbs/id_check.php
include_once('./_common.php');
$mb_id = trim($_POST['reg_mb_id']);
$sql = "SELECT mb_id FROM {$g5['member_table']} WHERE mb_id = '{$mb_id}'";
$row = sql_fetch($sql);
if ($row['mb_id']) {
echo $reg_data = 'Y'. '/' .$row['mb_id'];
} else {
echo $reg_data = 'N'. '/' .$mb_id;
}
3.주의 하실점
- ajax 사용시 id_check.php 파일은 /bbs/폴더에 위치해 놓으셔야 합니다.
이유는 회원가입시 register_form.php 파일이 /bbs/ 폴더에 있기 때문입니다.