ajax 를 통한 회원 아이디 중복 체크

ajax 를 통한 회원 아이디 중복 체크

QA

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); 로 해보세요 잘못적었네요

$strsql = "SELECT count(*) as cnt FROM g5_member WHERE mb_id = '$mb_id'";
$result = sql_fetch($strsql);

말씀 해주신대로 수정 하여

$mb_id = trim($_POST['reg_mb_id']);

    $strsql = "SELECT count(*) as cnt FROM g5_member WHERE mb_id = '$mb_id'";
    $result = sql_fetch($strsql);
   
    echo $result['cnt'];
   
중복된 아이디/새로운 아이디도 모두 0 으로 출력....합니다ㅠㅠㅠㅠㅠ

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/ 폴더에 있기 때문입니다.

 

답변을 작성하시기 전에 로그인 해주세요.
전체 126,500 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT