폼 작성시 여분필드 중복 체크
본문
안녕하세요.
폼메일인데 작성하면
이메일로도 오고 게시판에도 올라가는 형식입니다.
wr_1여분필드가 핸드폰번호인데
그동안 들어왔던 폰번호중 중복으로 들어오는 건은 얼럿으로 거르고 싶습니다.
게시판에서 직접 올리는게 아니라
인덱스 화면에서 폼으로 받고 있습니다.
저번에 도움을 받아 이만큼 했는데
아직도 잘되지 않아서 다시 한번
고수님들에게 도움 청해봅니다 ㅠㅠ
체크가 전혀되지 않고 있는데
이유를 모르겟습니다.. 도와주셔요…
소스는 아래와 같습니다.
<form enctype="multipart/form-data" id="form" name="form" method="post" onsubmit="return form_Check2();” action="<?php echo G5_THEME_URL.'/form_send.php';?>">
<input type="hidden" name="mode" value="send">
<input type="text" id="wr_1" name="wr_1" placeholder="폰번호">
<button>신청하기</button>
</form>
<script>
function form_Check2(){
if(form2.wr_1.value == ''){
alert("핸드폰번호를 입력해주십시오.");
form2.wr_1.focus();
return false;
}
let is_exist = false;
$.ajax({
url: '<?php echo G5_THEME_PATH ?>/ajax_wr_1_check.php',
type: 'POST',
data: {bo_table : list, wr_1 : $('#wr_1').val()},
context: this,
success: function(data) {
if (data == 'Y')
is_exist = true;
}
});
if (is_exist == true) {
alert('중복된 휴대폰 번호입니다.');
return false;
}
if(!confirm('조회 신청을 하시겠습니까?')) {
return false;
}
document.getElementById("btn_send").disabled = "disabled";
return true;
}
</script>
ajax파일
<?php
include_once('../../common.php');
$bo_table = "list";
if ($bo_table && $wr_1) {
$write_table = $g5['write_prefix'] . $bo_table;
$sql = "
select count(*) cnt
from {$write_table}
where wr_1 = '{$wr_1}'
";
$row = sql_fetch($sql);
if ($row['cnt'] > 0)
$result = 'Y'
echo $result ;
}
?>
답변 3
list -> 'list'
1. 자바 스크립트 부분에 오류가 없는지 체크
('c3' 메시지가 나오지 않는다면 해당 라인 전에 자바 스크립트 오류가 있다는 의미)
alert('c1');
alert('$('#wr_1').val()');
alert('<?php echo G5_THEME_PATH ?>/ajax_wr_1_check.php');
let is_exist = false;
$.ajax({
url: '<?php echo G5_THEME_PATH ?>/ajax_wr_1_check.php',
type: 'POST',
data: {bo_table : 'list', wr_1 : $('#wr_1').val()},
context: this,
success: function(data) {
alert('c2');
if (data == 'Y')
is_exist = true;
}
});
alert('c3');
2. AJAX 처리파일에 오류가 없는지 체크
http://~/theme/basic/ajax_wr_1_check.php?wr_1=01011112222 접속
'Y' 가 출력되지 않는다면,
<?php
include_once('../../common.php');
$bo_table = "list";
if ($bo_table && $wr_1) {
$write_table = $g5['write_prefix'] . $bo_table;
$sql = "
select count(*) cnt
from {$write_table}
where wr_1 = '{$wr_1}'
";
echo $sql; // 향후 삭제
$row = sql_fetch($sql);
print_r($row); // 향후 삭제
if ($row['cnt'] > 0)
$result = 'Y'
echo $result ;
}
sql 구문과 결과값에 문제가 없다면.. 디버깅을 위해 추가했던 echo 문과 print_r 문은 삭제
!-->!-->
$.ajax({
url: '<?php echo G5_THEME_PATH ?>/ajax_wr_1_check.php',
type: 'POST',
data: {bo_table : list, wr_1 : $('#wr_1').val()},
context: this,
success: function(data) {
if (data == 'Y') {
alert('중복된 휴대폰 번호입니다.');
return false;
}
}
});
<?php echo G5_THEME_PATH ?>/ajax_wr_1_check.php?wr_1=ABC
변환된 주소를 브라우저 입력 창에 넣어서 값이 나오는지 확인해 보세요.
답변을 작성하시기 전에 로그인 해주세요.