추가필드를 동적 다중 선택박스로 이용하는 방법 좀 해결해 주세요!!! 정보
그누보드 추가필드를 동적 다중 선택박스로 이용하는 방법 좀 해결해 주세요!!!본문
추가 필드를 이용하여 회원가입시 특정내용(수정2와 같은 선택박스를 여러 개 추가)을 "다중 동적 Select Box"로
입력 및 수정이 가능하도록 하려고 합니다. 즉, 첫번째 선택박스를 선택하는 것
것에 따라 두번째 선택박스의 리스트되는 내용이 정해지고 두번째 선택박스의 선택내용에 따라서 세번째
선택박스에 리스트되는 내용이 결정되어지는 형태로 만들고자 합니다.
여기저기 뒤져보니까 맨 아래부분의 스크립트와 그누보드의 회원관리부분을 잘 엮으면(?) 될 듯도 한데 워낙
초보자라... 어떻게 해결 안될까요????
* 진행한 사항
----------------------------------------------------------------------------------------------------
1. /bbs/skin/basic/mbupdate.skin.php에 코드 추가 : 수정1
2. /bbs/skin/basic/mbform.skin.php에 내용 추가" : 수정2
3. gb_member 테이블에 mb_1 ~ mb_a filed 추가
* 나타난 현상
----------------------------------------------------------------------------------------------------
1. input box를 이용한 방법은 입력 및 수정 등 모든 것인 잘 수행 됨. :
2. 선택박스를 이용하는 경우
가. 입력은 정상적으로 실행 : DB에서 확인 및 admin 권한의 회원리스트에 정상적으로 표시
나. 수정모드시 입력된 값이 나타나는 것이 아니라 초기치로 나옴.("수정2"의 1번,13번행을 지웠을 경우)
개인정보 수정시 주의를 기울이지 않으면 추가필드엔 초기값이 입력됨.
다. "수정2"의 1,13번행을 넣으면 선택박스 자체가 보이지 않음.
* 수정1. mbupdate.skin.php 파일 추가내용
+---------------------------------------------------------------------------------------------------+
1: // 자신만의 코드를 넣어주세요.
2: $sql2 = " update $cfg[table_member]
3: set mb_1 = '$mb_1',
4: mb_2 = '$mb_2',
5: mb_3 = '$mb_3',
6: mb_4 = '$mb_4',
7: mb_5 = '$mb_5',
8: mb_6 = '$mb_6',
9: mb_7 = '$mb_7',
10: mb_8 = '$mb_8',
11: mb_9 = '$mb_9',
12: mb_a = '$mb_a'
13: where mb_id = '$mb_id' ";
14: sql_query($sql2);
+---------------------------------------------------------------------------------------------------+
* 수정2. mbform.skin.php 파일 추가내용
+---------------------------------------------------------------------------------------------------+
1: <? if ($is_mb_a) { ?>
2: <tr><td colspan=2 background='<?=$member_skin?>/dotline.gif' height=1></td></tr>
3: <tr>
4: <td class=ct>Style</td>
5: <td>
6: <select name=mb_a>
7: <option value=''>Choice One
8: <option value='x'> X
9: <option value='y'> Y
10: <option value='z'> Z
11: </select></td></tr>
12: <script language='javascript'>document.fmbform.mb_a.value = '<?=$mb_a?>';</script>
13: <? } ?>
+---------------------------------------------------------------------------------------------------+
* 3단 다중 선택박스 스크립트 소스
+---------------------------------------------------------------------------------------------------+
<script language="javascript">
<!--
function Category(value) {
this.value = value;
this.length = 0;
}
function addCategory(category, value) {
category[category.length] = new Category(value);
category.length++;
}
var category = new Category();
addCategory(category, "macure set");
addCategory(category[0], "package");
addCategory(category, "manicare");
addCategory(category[1], "implement");
addCategory(category[1][0], "nail");
addCategory(category[1][0], "ttweezer");
addCategory(category[1][0], "scissors");
addCategory(category[1][0], "pusher cleaner and knife");
addCategory(category[1][0], "trimmer");
addCategory(category[1][0], "nail clipper");
addCategory(category[1][0], "nail nipper");
addCategory(category[1][0], "emery boards");
addCategory(category[1][0], "buffer");
addCategory(category[1][0], "ear pick");
addCategory(category[1][0], "multi useful kits");
addCategory(category[1], "artificial nail");
addCategory(category, "pedicure item");
addCategory(category[2], "pumice stone");
addCategory(category[2][0], "natural");
addCategory(category[2][0], "atrtificial");
addCategory(category[2][0], "ceramic");
addCategory(category[2][0], "sponge");
addCategory(category[2], "foot file");
addCategory(category[2][1], "emery");
addCategory(category[2][1], "metalic");
addCategory(category[2][1], "laser");
addCategory(category[2][1], "ceramic");
addCategory(category[2], "toe separator");
addCategory(category[2], "toe nail clipper");
addCategory(category, "eye care");
addCategory(category[3], "sharpener");
addCategory(category[3], "eyelash curler");
addCategory(category[3], "eyebrow pencil");
addCategory(category[3], "eyebrow razor");
addCategory(category[3], "artificial eyelash");
addCategory(category[3], "eyebrow comb");
addCategory(category, "make up");
addCategory(category[4], "mirror");
addCategory(category[4], "brush");
addCategory(category[4][1], "set");
addCategory(category[4][1], "facial");
addCategory(category[4][1], "lip");
addCategory(category[4][1], "eyeshadow applicator");
addCategory(category[4], "puffs");
addCategory(category, "hair care");
addCategory(category[5], "hair roller");
addCategory(category[5], "hair accessories");
addCategory(category[5][1], "hair pin");
addCategory(category[5][1], "scrunchy");
addCategory(category[5][1], "head band");
addCategory(category, "costume jewel");
addCategory(category[6], "necklace");
addCategory(category[6], "bracelet");
addCategory(category[6], "ring");
addCategory(category[6], "ankle");
addCategory(category[6], "chain");
function initForm(form) {
form.subject.length = category.length;
for (i = 0; i < category.length; i++)
form.subject[i].text = category[i].value;
form.subject.selectedIndex = 0;
form.contents.selectedIndex = 0;
change_subject(form);
}
function change_subject(form) {
var i = form.subject.selectedIndex;
form.contents.length = category[i].length;
for (j = 0; j < form.contents.length; j++)
form.contents[j].text = category[i][j].value;
form.contents.selectedIndex = 0;
change_contents(form);
}
function change_contents(form) {
var i = form.subject.selectedIndex
var j = form.contents.selectedIndex;
form.components.length = category[i][j].length;
for (k = 0; k < form.components.length; k++)
form.components[k].text = category[i][j][k].value;
form.components.selectedIndex = 0;
}
// -->
</SCRIPT>
<body onLoad="initForm(document.form)">
<h1>3단 동적 셀렉트 박스 예제</h1>
<form name="form" method="get" action="#">
<select name="subject" onchange="change_subject(this.form)"></select>
<select name="contents" onchange="change_contents(this.form)"></select>
<select name="components"></select>
</form>
+---------------------------------------------------------------------------------------------------+
입력 및 수정이 가능하도록 하려고 합니다. 즉, 첫번째 선택박스를 선택하는 것
것에 따라 두번째 선택박스의 리스트되는 내용이 정해지고 두번째 선택박스의 선택내용에 따라서 세번째
선택박스에 리스트되는 내용이 결정되어지는 형태로 만들고자 합니다.
여기저기 뒤져보니까 맨 아래부분의 스크립트와 그누보드의 회원관리부분을 잘 엮으면(?) 될 듯도 한데 워낙
초보자라... 어떻게 해결 안될까요????
* 진행한 사항
----------------------------------------------------------------------------------------------------
1. /bbs/skin/basic/mbupdate.skin.php에 코드 추가 : 수정1
2. /bbs/skin/basic/mbform.skin.php에 내용 추가" : 수정2
3. gb_member 테이블에 mb_1 ~ mb_a filed 추가
* 나타난 현상
----------------------------------------------------------------------------------------------------
1. input box를 이용한 방법은 입력 및 수정 등 모든 것인 잘 수행 됨. :
2. 선택박스를 이용하는 경우
가. 입력은 정상적으로 실행 : DB에서 확인 및 admin 권한의 회원리스트에 정상적으로 표시
나. 수정모드시 입력된 값이 나타나는 것이 아니라 초기치로 나옴.("수정2"의 1번,13번행을 지웠을 경우)
개인정보 수정시 주의를 기울이지 않으면 추가필드엔 초기값이 입력됨.
다. "수정2"의 1,13번행을 넣으면 선택박스 자체가 보이지 않음.
* 수정1. mbupdate.skin.php 파일 추가내용
+---------------------------------------------------------------------------------------------------+
1: // 자신만의 코드를 넣어주세요.
2: $sql2 = " update $cfg[table_member]
3: set mb_1 = '$mb_1',
4: mb_2 = '$mb_2',
5: mb_3 = '$mb_3',
6: mb_4 = '$mb_4',
7: mb_5 = '$mb_5',
8: mb_6 = '$mb_6',
9: mb_7 = '$mb_7',
10: mb_8 = '$mb_8',
11: mb_9 = '$mb_9',
12: mb_a = '$mb_a'
13: where mb_id = '$mb_id' ";
14: sql_query($sql2);
+---------------------------------------------------------------------------------------------------+
* 수정2. mbform.skin.php 파일 추가내용
+---------------------------------------------------------------------------------------------------+
1: <? if ($is_mb_a) { ?>
2: <tr><td colspan=2 background='<?=$member_skin?>/dotline.gif' height=1></td></tr>
3: <tr>
4: <td class=ct>Style</td>
5: <td>
6: <select name=mb_a>
7: <option value=''>Choice One
8: <option value='x'> X
9: <option value='y'> Y
10: <option value='z'> Z
11: </select></td></tr>
12: <script language='javascript'>document.fmbform.mb_a.value = '<?=$mb_a?>';</script>
13: <? } ?>
+---------------------------------------------------------------------------------------------------+
* 3단 다중 선택박스 스크립트 소스
+---------------------------------------------------------------------------------------------------+
<script language="javascript">
<!--
function Category(value) {
this.value = value;
this.length = 0;
}
function addCategory(category, value) {
category[category.length] = new Category(value);
category.length++;
}
var category = new Category();
addCategory(category, "macure set");
addCategory(category[0], "package");
addCategory(category, "manicare");
addCategory(category[1], "implement");
addCategory(category[1][0], "nail");
addCategory(category[1][0], "ttweezer");
addCategory(category[1][0], "scissors");
addCategory(category[1][0], "pusher cleaner and knife");
addCategory(category[1][0], "trimmer");
addCategory(category[1][0], "nail clipper");
addCategory(category[1][0], "nail nipper");
addCategory(category[1][0], "emery boards");
addCategory(category[1][0], "buffer");
addCategory(category[1][0], "ear pick");
addCategory(category[1][0], "multi useful kits");
addCategory(category[1], "artificial nail");
addCategory(category, "pedicure item");
addCategory(category[2], "pumice stone");
addCategory(category[2][0], "natural");
addCategory(category[2][0], "atrtificial");
addCategory(category[2][0], "ceramic");
addCategory(category[2][0], "sponge");
addCategory(category[2], "foot file");
addCategory(category[2][1], "emery");
addCategory(category[2][1], "metalic");
addCategory(category[2][1], "laser");
addCategory(category[2][1], "ceramic");
addCategory(category[2], "toe separator");
addCategory(category[2], "toe nail clipper");
addCategory(category, "eye care");
addCategory(category[3], "sharpener");
addCategory(category[3], "eyelash curler");
addCategory(category[3], "eyebrow pencil");
addCategory(category[3], "eyebrow razor");
addCategory(category[3], "artificial eyelash");
addCategory(category[3], "eyebrow comb");
addCategory(category, "make up");
addCategory(category[4], "mirror");
addCategory(category[4], "brush");
addCategory(category[4][1], "set");
addCategory(category[4][1], "facial");
addCategory(category[4][1], "lip");
addCategory(category[4][1], "eyeshadow applicator");
addCategory(category[4], "puffs");
addCategory(category, "hair care");
addCategory(category[5], "hair roller");
addCategory(category[5], "hair accessories");
addCategory(category[5][1], "hair pin");
addCategory(category[5][1], "scrunchy");
addCategory(category[5][1], "head band");
addCategory(category, "costume jewel");
addCategory(category[6], "necklace");
addCategory(category[6], "bracelet");
addCategory(category[6], "ring");
addCategory(category[6], "ankle");
addCategory(category[6], "chain");
function initForm(form) {
form.subject.length = category.length;
for (i = 0; i < category.length; i++)
form.subject[i].text = category[i].value;
form.subject.selectedIndex = 0;
form.contents.selectedIndex = 0;
change_subject(form);
}
function change_subject(form) {
var i = form.subject.selectedIndex;
form.contents.length = category[i].length;
for (j = 0; j < form.contents.length; j++)
form.contents[j].text = category[i][j].value;
form.contents.selectedIndex = 0;
change_contents(form);
}
function change_contents(form) {
var i = form.subject.selectedIndex
var j = form.contents.selectedIndex;
form.components.length = category[i][j].length;
for (k = 0; k < form.components.length; k++)
form.components[k].text = category[i][j][k].value;
form.components.selectedIndex = 0;
}
// -->
</SCRIPT>
<body onLoad="initForm(document.form)">
<h1>3단 동적 셀렉트 박스 예제</h1>
<form name="form" method="get" action="#">
<select name="subject" onchange="change_subject(this.form)"></select>
<select name="contents" onchange="change_contents(this.form)"></select>
<select name="components"></select>
</form>
+---------------------------------------------------------------------------------------------------+
댓글 전체