ajax 를 통한 회원 아이디 중복 체크 채택완료
그누보드5에서 자동으로 지원 하는것 외에
중복체크 버튼으로 아이디를 중복 체크 하기 위해
아래처럼 만들었습니다.
id.php
</p>
<p><input type="id" id="id">
<span id="id_check">중복확인</span></p>
<p> </p>
<p><script></p>
<p> $('#id_check').click(functio() {</p>
<p> var reg_mb_id= $('#id').val();</p>
<p> </p>
<p> $.ajax({</p>
<p> type: 'post',</p>
<p> url: 'id_check.php',</p>
<p> data: { reg_mb_id: reg_mb_id},</p>
<p> success: function(data) {</p>
<p> alert(data);</p>
<p> }</p>
<p> });
});</p>
<p></script></p>
<p>
id_check.php
</p>
<p>include_once('./_common.php');</p>
<p>$mb_id = trim($_POST['reg_mb_id']);</p>
<p> </p>
<p>$strsql = "SELECT count(*) as cnt FROM g5_member WHERE mb_id = '$mb_id'";</p>
<p>$result = sql_query($strsql);</p>
<p>$num = sql_num_rows($result);</p>
<p> </p>
<p>return $num;</p>
<p>
id.php 에서 id_check.php 로 아이디 값을 보내 검색 된 값을 받아오는 것으로 했는데요.
공백만 받아와 경고창으로 띄워 주거나 작동을 하지 않습니다.
1. 제가 ajax를 제대로 사용 하고 있는지?
2. ajax는 작동 하지만 왜 공백값만 받아 오는지?
3. 전체적으로 손볼곳이 있는지?
알고 싶습니다.
자료가 부족하다면 말씀해주세요! 바로 보충 하도록 하겠습니다.
답변 6개
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
이렇게 수정해 보세요
1.id.php
중복확인
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/ 폴더에 있기 때문입니다.
댓글을 작성하려면 로그인이 필요합니다.
$result = sql_query($strsql);
$num = sql_num_rows($result);
return $num;
부분을
$row= sql_fetch($strsql);
echo $row['cnt'] 로 변경해보세요
지금 하신건 sql_num_rows는 결과 수니 카운트를 하시는거니 항상 결과가 있어서 참일겁니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
sql_num_rows() 을 하시면 무조건 1만 출력해줄겁니다.
그리고 플라이 님 말씀대로
echo $num;
로 쓰세요.
저는
die($num);
을 선호합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
ajax는 return으로 찍기보다는 echo로 찍어서 처리해 주시면 됩니다.
답변에 대한 댓글 1개
중복된 아이디가 있음에도 alert(data) 가 공백으로만 경고창이 뜹니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
$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 으로 출력....합니다ㅠㅠㅠㅠㅠ