테스트 사이트 - 개발 중인 베타 버전입니다

폼 작성시 여분필드 중복 체크 채택완료

다나한포션 2년 전 조회 2,536

 

 

안녕하세요.

폼메일인데 작성하면

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

wr_1여분필드가 핸드폰번호인데

그동안 들어왔던 폰번호중 중복으로 들어오는 건은 얼럿으로 거르고 싶습니다.

게시판에서 직접 올리는게 아니라

인덱스 화면에서 폼으로 받고 있습니다.

 

저번에 도움을 받아 이만큼 했는데

아직도 잘되지 않아서 다시 한번

고수님들에게 도움 청해봅니다 ㅠㅠ

 

체크가 전혀되지 않고 있는데

이유를 모르겟습니다.. 도와주셔요…

 

 

소스는 아래와 같습니다.

 

 

</p>

<p><form enctype="multipart/form-data" id="form" name="form" method="post" onsubmit="return form_Check2();” action="<?php echo G5_THEME_URL.'/form_send.php';?>"></p>

<p><input type="hidden" name="mode" value="send"></p>

<p> </p>

<p><input type="text" id="wr_1" name="wr_1"  placeholder="폰번호"></p>

<p><button>신청하기</button></p>

<p></form></p>

<p> </p>

<p> </p>

<p><script></p>

<p>function form_Check2(){</p>

<p> </p>

<p>if(form2.wr_1.value == ''){</p>

<p>alert("핸드폰번호를 입력해주십시오.");</p>

<p>form2.wr_1.focus();</p>

<p>return false;</p>

<p>}</p>

<p> </p>

<p>let is_exist = false;</p>

<p>$.ajax({</p>

<p>      url: '<?php echo G5_THEME_PATH ?>/ajax_wr_1_check.php',</p>

<p>    type: 'POST',</p>

<p>    data: {bo_table : list, wr_1 : $('#wr_1').val()},</p>

<p>    context: this,</p>

<p>    success: function(data) {</p>

<p>        if (data == 'Y')</p>

<p>            is_exist = true;       </p>

<p>    }</p>

<p>});</p>

<p>if (is_exist == true) {</p>

<p>    alert('중복된 휴대폰 번호입니다.');</p>

<p>    return false;</p>

<p>}</p>

<p> </p>

<p>if(!confirm('조회 신청을 하시겠습니까?')) {</p>

<p>return false;</p>

<p>}</p>

<p>document.getElementById("btn_send").disabled = "disabled";</p>

<p>return true;</p>

<p>}</p>

<p></script></p>

<p>

 

 

ajax파일

</p>

<p><?php</p>

<p>include_once('../../common.php');</p>

<p> </p>

<p> $bo_table = "list";</p>

<p> </p>

<p> </p>

<p>if ($bo_table && $wr_1) {</p>

<p>    $write_table = $g5['write_prefix'] . $bo_table;</p>

<p>   </p>

<p>    $sql = "</p>

<p>        select count(*) cnt</p>

<p>          from {$write_table}       </p>

<p>        where wr_1 = '{$wr_1}'</p>

<p>    ";</p>

<p>   </p>

<p>    $row = sql_fetch($sql);</p>

<p>    if ($row['cnt'] > 0)   </p>

<p>        $result = 'Y'</p>

<p>   </p>

<p>    echo $result ;</p>

<p>}</p>

<p>?></p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
2년 전

list -> 'list'

 

1. 자바 스크립트 부분에 오류가 없는지 체크

('c3' 메시지가 나오지 않는다면 해당 라인 전에 자바 스크립트 오류가 있다는 의미)

</p>

<p>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');</p>

<p>

 

2. AJAX 처리파일에 오류가 없는지 체크

http://~/theme/basic/ajax_wr_1_check.php?wr_1=01011112222 접속

'Y' 가 출력되지 않는다면,

</p>

<p><?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}'

    ";</p>

<p> </p>

<p>    echo $sql; // 향후 삭제 

   

    $row = sql_fetch($sql);</p>

<p> </p>

<p>    print_r($row); // 향후 삭제</p>

<p>

    if ($row['cnt'] > 0)   

        $result = 'Y'

   

    echo $result ;

}

 </p>

<p>

 

sql 구문과 결과값에 문제가 없다면.. 디버깅을 위해 추가했던 echo 문과 print_r 문은 삭제

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

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

<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를 걸어줘야 할 것 같은데
혹시 잘못된 부분이 있을지요..
감사합니다.
마르스컴퍼니
2년 전
ajax 문 안에서는 return false 의 의미가 ajax 처리를 대상으로 합니다.

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

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

[code]
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;
}
[/code]
다나한포션
2년 전
감사합니다.

$.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;
}
}
});

요건 반응을 하는데
적어주신건 스크립트 안에서 반응을 안해서요 ㅠ
더 이상 여쭤보는것도 실례인것 같고
제가 한번 연구해보겠습니다!
감사합니다!
마르스컴퍼니
2년 전
https://pie001.github.io/entry/tech-note/0014/

댓글을 작성하려면 로그인이 필요합니다.

<?php echo G5_THEME_PATH ?>/ajax_wr_1_check.php?wr_1=ABC

변환된 주소를 브라우저 입력 창에 넣어서 값이 나오는지 확인해 보세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

</p>

<pre>
<code>$.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;
         }      
    }
});
</code>
로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

다나한포션
2년 전
답변정말 감사합니다.

근데 아무런 반응이 없어서요
혹시 다른 스크립트 쪽에 뭔가 잘못된건 아닌지
송구스럽지만 한번만 더 봐주실 수 있으실지요..ㅠ
내가누구야
2년 전
우선 ajax가 정상적으로 전달되고 있는지를 봐야 할 것 같은데요. 정상 전달이 되고 있다면 DB에서 나오는 값은 또 정상적인지 확인해봐야 할 것 같아요

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인