2단 셀렉트 저장시 문제 입니다.
본문
<script language = "javascript">
//상위 셀렉트로 하위 셀렉트 제어하기
function showSub(obj) {
var f = document.forms.fwrite;
for($i = 1; $i < 11; $i++){
if(obj == $i) {
f.getElementsByClassName("SUB"+$i)[0].style.display = "inline-block";
}else {
$( 'SUB'+$i ).remove( '#wr_2' );
}
}
}
</script>
<select name="wr_1" id="wr_1" required onChange="showSub(this.options[this.selectedIndex].id);">
<?if(!$write[wr_1]){?>
<option value="1차분류">1차분류 선택하세요.</option>
<?for($i = 1; $i < 11; $i++){?>
<option id = "<?=$i?>"value="<?=$board['bo_'.$i.'_subj'] ?>" <?php if($board['bo_'.$i.'_subj'] == '') echo"style='display:none;'"; ?>><?=$board['bo_'.$i.'_subj'] ?></option>
<?}?>
<?}else{?>
<option value="<?=$write[wr_1]?>">==<?=$write[wr_1]?>==</option>
<?for($i = 1; $i < 11; $i++){?>
<option id = "<?=$i?>"value="<?=$board['bo_'.$i.'_subj'] ?>" <?php if($board['bo_'.$i.'_subj'] == '') echo"style='display:none;'"; ?>><?=$board['bo_'.$i.'_subj'] ?></option>
<?}?>
<?}?>
</select>
<?for($i = 0; $i < 11; $i++){?>
<select class="SUB<?=$i?>" name="wr_2" id="wr_2" required style="display:none;">
<? $cat2 = explode('|',$board['bo_'.$i]);?>
<?if(!$write['wr_'.$i + 2]){?>
<option value="2차분류">2차분류 선택하세요.</option>
<?for($j = 0; $j < count($cat2); $j++){?>
<option value="<?=$cat2[$j]?>"><?=$cat2[$j]?></option>
<?}?>
<?}else{?>
<option value="<?=$write[wr_2]?>">==<?=$write[wr_2]?>==</option>
<?for($j = 0; $j < count($cat2); $j++){?>
<option value="<?=$cat2[$j]?>"><?=$cat2[$j]?></option>
<?}?>
<?}?>
</select>
<?}?>
여분필드로 2차 카테고리를 만들려고 합니다.
위 소스 대로 하면 두번째 셀렉트가 보이는건 1개이지만 실제론
10개가 만들어지고 저장이 제대로 안되서 나오네요.
1단에서 선택한 부분만 2차로 뿌려지는 방법이 있을까요...
아... 전 웹디자이너인데 이런거 만들고 있으려니 숨이 막히네요 ㅠㅠ
도움 부탁드립니다.
답변 3
소스는 혹시 직접 짜신건가요??
불필요한 구문이 너무 많아서요..
<script type="text/javascript">
var listText = new Array();
var listValue = new Array();
listText[0] = new Array('옵션1-1','옵션1-2','옵션1-3'); // 각 option의 text
listValue[0] = new Array('op1-1','op1-2','op1-3'); // 각 option의 value
listText[1] = new Array('옵션2-1','옵션2-2','옵션2-3');
listValue[1] = new Array('op2-1','op2-2','op2-3');
listText[2] = new Array('옵션3-1','옵션3-2','옵션3-3');
listValue[2] = new Array('op3-1','op3-2','op3-3');
function getList(sel_id) {
var sel = document.getElementsByName('selName');
var sel_id = sel_id - 1;
if(sel_id>=0) {
sel[1].options.length = listText[sel_id].length;
for(i=0;i<listText[sel_id].length;i++){
sel[1].options[i] = new Option(listText[sel_id][i], listValue[sel_id][i]);
}
} else {
sel[1].options.length = 1;
sel[1].options[0].text = "------";
sel[1].options[0].value = 0;
}
}
</script>
<select name="selName" onchange="getList(this.selectedIndex)">
<option>선택</option>
<option value="op1">옵션1</option>
<option value="op2">옵션2</option>
<option value="op3">옵션3</option>
</select>
<select name="selName">
<option>------</option>
</select>
감사합니다..
감히 웹디자이너가 소스만지려고 한게 실수엿던거 같애요...
그냥 외주 주려고합니다 ㅠㅠ
도움 주셔서 감사합니다