폼 작성시 여분필드 중복 체크

폼 작성시 여분필드 중복 체크

QA

폼 작성시 여분필드 중복 체크

본문

 

 

안녕하세요.

폼메일인데 작성하면

이메일로도 오고 게시판에도 올라가는 형식입니다.

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 문은 삭제

답변감사합니다.
처음부터 알려주신덕분에 기능은 잘 되고 있습니다.
 "이미 신청된 휴대폰 번호입니다." 라고 얼럿까지 잘떠서 걸러주는데요
근데 해당 얼럿이 뜨고 난 뒤
그냥 신청이 되어버립니다..ㅎ...

<script>
function form_Check2(){

if(form2.wr_1.value == ''){
alert("핸드폰번호를 입력해주십시오.");
form2.wr_1.focus();
return false;
}

$.ajax({
      url: '<?php echo G5_THEME_URL ?>/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;
        }     
    }
});

if(!confirm('조회 신청을 하시겠습니까?')) {
return false;
}

document.getElementById("btn_send").disabled = "disabled";
return true;
}
</script>

핸드폰번호를 입력해주십시오 . 이부분은 얼럿뜨고 다시 제자리로 잘 돌아가는데
저부분만 돌아오지 않고 진행이 되어버리네요

중간에 뭔가 break를 걸어줘야 할 것 같은데
혹시 잘못된 부분이 있을지요..
감사합니다.

ajax 문 안에서는 return false 의 의미가 ajax 처리를 대상으로 합니다.

form submit 에 대한 return false 처리를 하려면 ajax 문 밖으로 빼야 됩니다.

https://pie001.github.io/entry/tech-note/0014/


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;
}

감사합니다.

$.ajax({
      url: '<?php echo G5_THEME_URL ?>/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;
        }
    }
});

요건 반응을 하는데
적어주신건 스크립트 안에서 반응을 안해서요 ㅠ
더 이상 여쭤보는것도 실례인것 같고
제가 한번 연구해보겠습니다!
감사합니다!



$.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;
         }      
    }
});
답변을 작성하시기 전에 로그인 해주세요.
전체 75
QA 내용 검색

회원로그인

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