2026, 새로운 도약을 시작합니다.

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개

채택된 답변
+20 포인트

소스는 혹시 직접 짜신건가요??

불필요한 구문이 너무 많아서요..

Copy




    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
로그인 후 평가할 수 있습니다

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

감사합니다.. 

감히 웹디자이너가 소스만지려고 한게 실수엿던거 같애요... 

그냥 외주 주려고합니다 ㅠㅠ

도움 주셔서 감사합니다

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

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

ajax 나 @애드프로 님 말씀처럼 배열을 이용하시는 편이 나으실것으로 보여집니다.

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

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

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

로그인
🐛 버그신고