DB 연동 셀렉트박스 질문입니다.
본문
<?php
include_once('./_common.php');
$sql = " select wr_subject from g5_write_sub_01_01 ";
$res = sql_query($sql);
for ($i=0; $row = sql_fetch_array($res); $i++) {
$nm[$i] = $row['wr_1'].'|1|'.$row['wr_2'].'|2|'.$row['wr_3'].'|3|'.$row['wr_4'].'|4|';
}
?>
<script type="text/javascript">
function getCataAllId(cmd){
cmd = eval(cmd);
cmd2 = cmd +1;
initCataID(cmd);
var ch = "";
for(var idx = 1; idx < cmd2; idx++){
ch = ch + eval("document.f1.menu"+idx+".value") + "|"+idx+"|";
}
var v = 0;
var temp = "";
var tempv = "";
var arg = "";
for(var m = 0; m < menuArr.length; m ++) {
arg = menuArr[m].substring(menuArr[m].indexOf("|"+cmd+"|")+3,menuArr[m].indexOf("|"+cmd2+"|")) ;
temp = menuArr[m].substring(0, menuArr[m].indexOf("|"+cmd+"|")+3);
if(temp == ch && tempv != arg ){
v++;
eval("document.f1.menu"+cmd2+".length = document.f1.menu"+cmd2+".length + 1");
eval("document.f1.menu"+cmd2+".options["+v+"].value = arg ");
eval("document.f1.menu"+cmd2+".options["+v+"].text = arg ");
}
if(temp != ch){
tempv = "";
}else{
tempv = menuArr[m].substring(menuArr[m].indexOf("|"+cmd+"|")+3,menuArr[m].indexOf("|"+cmd2+"|"));
}
}
}
function initCataID(cmd){
cmd = eval(cmd);
if(cmd == 1){
document.f1.menu2.length = 1;
document.f1.menu3.length = 1;
document.f1.menu4.length = 1;
document.f1.menu2.selectedIndex = 0;
document.f1.menu3.selectedIndex = 0;
document.f1.menu4.selectedIndex = 0;
}
if(cmd == 2){
document.f1.menu3.length = 1;
document.f1.menu4.length = 1;
document.f1.menu3.selectedIndex = 0;
document.f1.menu4.selectedIndex = 0;
}
if(cmd == 3){
document.f1.menu4.length = 1;
document.f1.menu4.selectedIndex = 0;
}
}
</script>
<form name = 'f1' >
<select name = 'menu1' id='menu1' OnChange='javascript:getCataAllId(1)' class="select1">
<option value="" selected>선택하세요.</option>
</select>
<select name = 'menu2' id='menu2' OnChange='javascript:getCataAllId(2)' class="select2">
<option value="" selected>선택하세요.</option>
</select>
<select name = 'menu3' id='menu3' OnChange='javascript:getCataAllId(3)' class="select3">
<option value="" selected>선택하세요.</option>
</select>
<select name = 'menu4' id='menu4' OnChange='javascript:gotomenu()' class="select4">
<option value="" selected>선택하세요.</option>
</select>
</form>
<script type="text/javascript">
/* JSON encode, parse */
var stuff = <?php echo json_encode($nm); ?>;
var str = JSON.stringify(stuff);
var menuArr = new Array();
menuArr= JSON.parse(str);
var z1 = 0;
var temp1 = 0;
initCataID(1);
for(var m = 0; m < menuArr.length; m ++) {
if ( menuArr[m].substring(0, menuArr[m].indexOf("|1|")) != temp1 ){
document.f1.menu1.length = document.f1.menu1.length + 1;
document.f1.menu1.options[z1+1].value = menuArr[m].substring(0, menuArr[m].indexOf("|1|")) ;
document.f1.menu1.options[z1+1].text = menuArr[m].substring(0, menuArr[m].indexOf("|1|")) ;
temp1 = menuArr[m].substring(0, menuArr[m].indexOf("|1|"));
z1++;
}
/* index 1에 중복 제거입니다. */
}
function gotomenu()
{
location.href = '#';
}
</script>
sub_01_01 게시판의 wr_1 ,wr_2, wr_3, wr_4 의 여분필드를 불러오는건 잘 됩니다. 그런데,
저장이 안됩니다.
저장이 된다쳐도 수정시 풀려버릴것 같은데...
어디를 수정해야 하는지 고수님들 조언 부탁 그립니다.^^
답변 3
wr_1~4번의 폼을 <input hidden 으로 해서 전송되도록 해주셔야 할듯 한데요
등록시 저장은 어떻게 하고 있는지 파악이 되지 않아 확인은 어렵지만 등록시에 wr_1~4 폼값이 있다면 그 부분에 반영하면 되지만 없다면 추가해서 값을 적용해 주셔야 할듯 합니다.
form name = 'f1' 등록버튼은 어디있나요?
어디서 어떻게 저장하는지 알아야 상황에 맞는 답변이 가능합니다
위 코드가 write.skin.php 일부라면 스킨폴더에 write_upate.head.skin.php를 만들고
아래 코드를 넣으세요(menu1~menu4가 wr_1~wr_4에 저장 되어야 나올테니까요)
애초에 게시판 구조에 맞게 이름을 붙이면 아래와 같은 추가 작업이 필요 없을 것인데요
<?
$wr_1 = $menu1; $wr_2 = $menu2; $wr_3 = $menu3; $wr_4 = $menu4;
?>
<form name = 'f1' >
<select name = 'menu1' id='menu1' OnChange='javascript:getCataAllId(1)' class="select1">
<option value="" selected>선택하세요.</option>
</select>
<select name = 'menu2' id='menu2' OnChange='javascript:getCataAllId(2)' class="select2">
<option value="" selected>선택하세요.</option>
</select>
<select name = 'menu3' id='menu3' OnChange='javascript:getCataAllId(3)' class="select3">
<option value="" selected>선택하세요.</option>
</select>
<select name = 'menu4' id='menu4' OnChange='javascript:gotomenu()' class="select4">
<option value="" selected>선택하세요.</option>
</select>
</form>
위 <option value="" selected>선택하세요.</option> 는 다중셀렉트 입니다.
답변을 작성하시기 전에 로그인 해주세요.