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

회원가입 주소를 셀렉트로 받으려 합니다. 채택완료

시엔라이프 6년 전 조회 3,527

중국에서 사용하려는 페이지 인데요. 그누 회원가입 주소를 다음 디비에서 받는데요. 중국 주소는 그것을 수정해야 해서요. 데이터는 js/distpicker.js 받아서 입력시키려고 합니다. 동냥 얻어 짜집기로 해 보는데 안되네요. 아래 좀 봐주세요. 어디를 수정해야 하는지요.                                                                                                              

                
                                                             
                
                                                                                                                                           

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

답변 4개

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

쪽지로 간단하나마 대화를 해주셨기에 조금 작업을 해 봤습니다.

 

회원 가입시 주소가 mb_addr1 에 입력됩니다.

회원 정보 수정시에 셀렉트 박스에 값이 나오도록 하는건 작업하지 않았습니다.

회원 정보 수정시, 주소를 바꾸면 수정된 주소로 DBdp 저장됩니다. 

 

A. 먼저 /bbs/register_form_update.php 파일을 열어.

 

수정 1번

 

</p>

<p><?php

include_once('./_common.php');

include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');

include_once(G5_LIB_PATH.'/register.lib.php');

include_once(G5_LIB_PATH.'/mailer.lib.php');

include_once(G5_LIB_PATH.'/thumbnail.lib.php');</p>

<p>

이 아래에 

 

</p>

<p>$mb_addr1 = $_POST['addr11']." ".$_POST['addr12']." ".$_POST['addr13'];</p>

<p>

추가.

 

 

수정 2번

 

45~50 번째줄에 있는

</p>

<p>$mb_addr1       = isset($_POST['mb_addr1'])         ? trim($_POST['mb_addr1'])       : "";</p>

<p>

이 줄을 아래 내용으로 교체

</p>

<p>//$mb_addr1       = isset($_POST['mb_addr1'])         ? trim($_POST['mb_addr1'])       : "";

$mb_addr1      = $mb_addr1;</p>

<p>

 

 

수정 3번 (회원가입시 "올바른 방법으로 .. " 하는 에러가 나올경우.)

120번째 줄 쯤 있는  아래 내용을 

 </p>

<p>  if ($w=='') {

        if ($msg = exist_mb_id($mb_id))     alert($msg);</p>

<p>        if (get_session('ss_check_mb_id') != $mb_id || get_session('ss_check_mb_nick') != $mb_nick || get_session('ss_check_mb_email') != $mb_email) {

            set_session('ss_check_mb_id', '');

            set_session('ss_check_mb_nick', '');

            set_session('ss_check_mb_email', '');</p>

<p>            alert('올바른 방법으로 이용해 주십시오.');

        }</p>

<p>

이렇게 교체

(이경우, 닉네임 세션값이 정확하게 담기지 않아 생기는 오류메세지를 막는 것이니, 나중에 확인하여 수정하여야 합니다.)

 

</p>

<p>    if ($w=='') {

        if ($msg = exist_mb_id($mb_id))     alert($msg);</p>

<p>

        if (get_session('ss_check_mb_id') != $mb_id || get_session('ss_check_mb_email') != $mb_email) {

            set_session('ss_check_mb_id', '');

            set_session('ss_check_mb_email', '');</p>

<p>            alert('올바른 방법으로 이용해 주십시오.');

        }

 

 

B.사용중인 member skin 폴더에서.  register_form.skin.php 수정

 

140번째 줄 근처에 있는 ...

</p>

<p>                <label for="reg_mb_zip" class="sound_only">우편번호<?php echo $config['cf_req_addr']?'<strong class="sound_only"> 필수</strong>':''; ?></label>

                <input type="text" name="mb_zip" value="<?php echo $member['mb_zip1'].$member['mb_zip2']; ?>" id="reg_mb_zip" <?php echo $config['cf_req_addr']?"required":""; ?> class="frm_input <?php echo $config['cf_req_addr']?"required":""; ?>" size="5" maxlength="6"  placeholder="우편번호">

                <button type="button" class="btn_frmline" onclick="win_zip('fregisterform', 'mb_zip', 'mb_addr1', 'mb_addr2', 'mb_addr3', 'mb_addr_jibeon');">주소 검색</button>


                <input type="text" name="mb_addr1" value="<?php echo get_text($member['mb_addr1']) ?>" id="reg_mb_addr1" <?php echo $config['cf_req_addr']?"required":""; ?> class="frm_input frm_address full_input <?php echo $config['cf_req_addr']?"required":""; ?>" size="50"  placeholder="기본주소">

                <label for="reg_mb_addr1" class="sound_only">기본주소<?php echo $config['cf_req_addr']?'<strong> 필수</strong>':''; ?></label>


                <input type="text" name="mb_addr2" value="<?php echo get_text($member['mb_addr2']) ?>" id="reg_mb_addr2" class="frm_input frm_address full_input" size="50"  placeholder="상세주소">

                <label for="reg_mb_addr2" class="sound_only">상세주소</label>

                


                <input type="text" name="mb_addr3" value="<?php echo get_text($member['mb_addr3']) ?>" id="reg_mb_addr3" class="frm_input frm_address full_input" size="50" readonly="readonly"  placeholder="참고항목">

                <label for="reg_mb_addr3" class="sound_only">참고항목</label>

                <input type="hidden" name="mb_addr_jibeon" value="<?php echo get_text($member['mb_addr_jibeon']); ?>">
          

 

이 내용 을 다음과 같이 교체.

 

</p>

<p>                주소 입력
   

               

     <div data-toggle="distpicker"></p>

<p>        <select class="form-control" name="addr11"></select>

        <select class="form-control" name="addr12"></select>

        <select class="form-control" name="addr13"></select>

        <?

         if($w == 'u'){ echo "회원가입시 등록된 주소 : ". $member['mb_addr1']; }

        ?>

                <label for="reg_mb_addr1"><?php echo $config['cf_req_addr']?'<strong class="sound_only">필수</strong>':''; ?></label>

                <input type="text" name="mb_addr2" value="<?php echo get_text($member['mb_addr2']) ?>" id="reg_mb_addr2" class="frm_input frm_address" size="50" placeholder="상세주소">

                <label for="reg_mb_addr2" class="sound_only">상세주소</label>

                


                <input type="text" name="mb_addr3" value="<?php echo get_text($member['mb_addr3']) ?>" id="reg_mb_addr3" class="frm_input frm_address" size="50" readonly="readonly">

                <label for="reg_mb_addr3" class="sound_only">참고항목</label>

                <input type="hidden" name="mb_addr_jibeon" value="<?php echo get_text($member['mb_addr_jibeon']); ?>">

      </div>  

  <script src="<a href="http://bbmask.net/js/distpicker.js"></script>" target="_blank" rel="noopener noreferrer">http://bbmask.net/js/distpicker.js"></script></a></p>

<p>

 

 

회원 정보 수정 화면을 보시면 아시겠지만,

셀렉트 박스에 기존 정보가 나타나는 부분은 작업하지 않았습니다.

 

 

 

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

답변에 대한 댓글 1개

시엔라이프
6년 전
너무너무 감사드립니다.
원하는 것을 얻었습니다.
날아 갈 것 같습니다.
다시 한번 감사드립니다.

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

지속 관심 감사드리고요. 말씀하신 distpicker.js 너무 양이 많아 올릴 수는 없고요. http://bbmask.net/js/distpicker.js">http://bbmask.net/js/distpicker.js  다시 한번 도움 말씀 부탁드려 봅니다.  

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

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

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 add_stylesheet('', 0); ?>

               

   

                                date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 닉네임수정일이 지나지 않았다면  ?>            

   

                                                                                                                                                               
                                class="frm_input " minlength="3" maxlength="20">                            
class="frm_input " minlength="3" maxlength="20">
class="frm_input " minlength="3" maxlength="20">
   

   

                                                                                                                       

       

                               

               

                                       

               

                                       

               

                                       

               

                                                  
                                                                  
                                 class="frm_input frm_address " size="50">                                                                                                                                                            
                                                                class="frm_input " size="10">                 '._t('아이핀 본인확인').''.PHP_EOL;                     if($config['cf_cert_hp'])                         echo ''.PHP_EOL;

                    echo ''.PHP_EOL;                 }                 ?>                                

                                   
                           
                                                                                                                                   
                                                                                                                                                   
class="frm_input " size="70" maxlength="255">
class="frm_input " maxlength="20">
                class="frm_input " maxlength="20">                                                            
                                           
   

   

                                                                               

               

                                       

        = $config['cf_icon_level']) {  ?>        

                                       

       

                               

               

                                       

               

                                                                                       

               

                                       

       

                                               
                                    ,                                                                                     <?php echo _t('회원아이콘'); ?>                                                            
                >                            
                >                            
                                                                                    id="reg_mb_open">                            
                                    ,                                                                
   

   

                   
   

   

                                                                                               

 

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

답변에 대한 댓글 1개

그레이
6년 전
님.!!!
올려놓은 소스는 그누보드 기본으로 들어있는 스킨입니다.

작업을 하던 소스(그래야 뭐가 잘못된건지 파악할 수 있지요.)를 원하는 것인데,
기본소스를 그대로 올려놓는건, 무슨 의미입니까..??
최소한 "distpicker.js"정도는 올려 놔야 되는것 아닙니까..??

뭐 인터넷 뒤지면 쉽게 나오는 "distpicker.js"라고는 하지만, 답변하는 사람이 그것까지 일일히 찾아야 할 이유가 있을까요..??


아무튼 아래 내용을 복사, html(UTF-8)로 저장, 작업중인 사이트 루트에 업로드, 확인해 보시고
회원 스킨에 적용하시면 될 듯 합니다.


[code]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>짱깨 주소 3단 셀렉트</title>
</head>
<body>



<form class="form-inline mt-2 mb-4">
<div data-toggle="distpicker">
<select class="form-control" name="addr11"></select>
<select class="form-control" name="addr12" ></select>
<select class="form-control" name="addr13" ></select>
</div>
</form>


<!-- Scripts -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="./js/distpicker.js"></script>

</body>
</html>
[/code]

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

6년 전

전체 소스를 알 수 없어서, 위 내용에서 보이는 부분만 이야기 하자면,

 

먼저 $write['mb_addr1'] 이것이 회원 가입시 받은 주소가 맞는건가요..

 

그렇다면, 불러올때는 

$wr_addr1 = explode(" ",$write['mb_addr1']); 이 아니라,

$wr_addr1 = explode(" ",$member['mb_addr1']);

이어야 합니다.

 

두번째로 

$wr_addr1 = explode(" ",$write['mb_addr1']);

회원의 주소를 wr_addr1 라는 함수로 나눴으면, 

$mb_addr1[n] 이 아니라 $wr_addr[n] 이어야 겠지요. ^^

 

$addr11 = $mb_addr1[0];   ---> $addr11 = $wr_addr1[0];

$addr12 = $mb_addr1[0];   ---> $addr12 = $wr_addr1[1]; $addr13 = $mb_addr1[0];   ---> $addr13 = $wr_addr1[2];           

 

 

아래것으로 바꿔 보세요.^^

$wr_addr1 = explode(" ",$member['mb_addr1']);

$addr11 = $wr_addr1[0];

$addr12 = $wr_addr1[1]; $addr13 = $wr_addr1[2]; 

?>

 

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

답변에 대한 댓글 1개

시엔라이프
6년 전
관심을 보여 주셔서 너무 감사드립니다.
위 부분만 적용하니 주소가 입력되지 않네요.
하지만 희망이 보여 너무 좋습니다.
아래에 register_form.skin 전체를 올려 드릴께요.
한번 더 살펴 주시면 고맙겠습니다.

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

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

로그인