회원가입 주소를 셀렉트로 받으려 합니다. 채택완료
중국에서 사용하려는 페이지 인데요. 그누 회원가입 주소를 다음 디비에서 받는데요. 중국 주소는 그것을 수정해야 해서요. 데이터는 js/distpicker.js 받아서 입력시키려고 합니다. 동냥 얻어 짜집기로 해 보는데 안되네요. 아래 좀 봐주세요. 어디를 수정해야 하는지요.
답변 4개
쪽지로 간단하나마 대화를 해주셨기에 조금 작업을 해 봤습니다.
회원 가입시 주소가 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개
댓글을 작성하려면 로그인이 필요합니다.
지속 관심 감사드리고요. 말씀하신 distpicker.js 너무 양이 많아 올릴 수는 없고요. http://bbmask.net/js/distpicker.js">http://bbmask.net/js/distpicker.js 다시 한번 도움 말씀 부탁드려 봅니다.
댓글을 작성하려면 로그인이 필요합니다.
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 add_stylesheet('', 0); ?>
답변에 대한 댓글 1개
올려놓은 소스는 그누보드 기본으로 들어있는 스킨입니다.
작업을 하던 소스(그래야 뭐가 잘못된건지 파악할 수 있지요.)를 원하는 것인데,
기본소스를 그대로 올려놓는건, 무슨 의미입니까..??
최소한 "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]
댓글을 작성하려면 로그인이 필요합니다.
전체 소스를 알 수 없어서, 위 내용에서 보이는 부분만 이야기 하자면,
먼저 $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개
위 부분만 적용하니 주소가 입력되지 않네요.
하지만 희망이 보여 너무 좋습니다.
아래에 register_form.skin 전체를 올려 드릴께요.
한번 더 살펴 주시면 고맙겠습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
원하는 것을 얻었습니다.
날아 갈 것 같습니다.
다시 한번 감사드립니다.