채택완료

폼 받기 여분필드 중복 문제

2022-10-31 (월) 18:37:11 1,491

안녕하세요.

폼작성 하면 게시판으로 입력되는 건데요

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

중복으로 들어오는건은 얼럿으로 거르고 싶습니다.

Copy
<form enctype="multipart/form-data" id="form" name="form" method="post" onsubmit="return form_Check();" 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_Check(){

                    if(form.wr_1.value == ''){
                        alert("핸드폰 번호를 입력해주십시오.");
                        form.wr_1.focus();
                        return false;
                    }
                    if(!confirm('신청을 하시겠습니까?')) {
                        return false;
                    }
                    document.getElementById("btn_send").disabled = "disabled";
                    return true;
                    }
            </script>

여기서 스크립트 부분을 어떻게 넣어야 하는지 감이 안옵니다

고수님들 도와주세요 ㅠ

|

답변 1개 / 댓글 4개

채택된 답변
+20 포인트
2022-10-31 (월) 18:56:11

글 작성 폼에서 휴대폰 번호를 받고,

[제출] 버튼 클릭 시점에 (저장 페이지 넘어가기전) 중복체크를 하고자 하는 경우에는 

ajax 로 처리해야 됩니다. ajax 처리용 페이지 생성이 필요합니다.

1) [스킨 디렉토리]/write.skin.php

form_Check() 함수의 휴대폰 번호 입력체크 구문 아래에 다음 코드 추가

Copy
let is_exist = false;
$.ajax({
    url: '<?php echo $board_skin_url ?>/ajax_wr_1_check.php',
    type: 'POST',
    data: {bo_table : g5_bo_table, wr_1 : $('#wr_1').val()},
    context: this,
    success: function(data) { 
        if (data == 'Y')
            is_exist = true;        
    }
});

if (is_exist == true) {
    alert('중복된 휴대폰 번호입니다.');
    return false;
}

2) [스킨 디렉토리]/ajax_wr_1_check.php

Copy
include_once('../../../common.php');

 

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

답변에 대한 댓글 4개

2022-10-31 (월) 21:27:27
답변정말 감사드립니다.
근데 제가 게시판에서 사용하는게 아니라
메인 화면에서 따로 빼가지고 사용중이라서요...
경로를 바꾸면 될 것 같은데 아래처럼 하니 안되서요.. 염치없지만 경로좀 봐주실수있을까요 ㅠ

url: '<?php echo $G5_THEME_PATH ?>/ajax_wr_1_check.php',
type: 'POST',
data: {bo_table : 'list', wr_1 : $('#wr_1').val()},



check.php파일
~~~~

$write_table ="list";

$sql = "
select count(*) cnt
from {$write_table}
where wr_1 = '{$wr_1}'

~~~~
2022-11-01 (화) 14:06:14
$G5_THEME_PATH
-> G5_THEME_PATH

/theme/~/ajax_wr_1_check.php
=> include_once("../../common.php);
2022-11-02 (수) 15:34:48
정말 감사합니다.
근데 해주신대로 적용을 해봣는데 안되어서요..
아래 전체 소스 적어봅니다.. 또 염치없지만 오류사항 있으면 알려주세요 ㅠ


<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 ;
}
?>
2022-11-02 (수) 19:46:06
브라우저에서 ~/theme/ajax_wr_1_check.php?bo_table=list&wr_1=010-111-2222
식으로 직접 접속해서.. 'Y' 가 출력되는지 안된다면 $sql 을 출력해서.. echo $sql;
디버깅해나가면 됩니다.

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