테스트 사이트 - 개발 중인 베타 버전입니다

배열 for문 고수님들 부탁드립니다.. 채택완료

aaab 5년 전 조회 2,092

    $service_1st_arr = array(

        '한글',

        '숫자'

    );</p>

<p>$service_2st_arr = array(

        '한글' =>    array(</p>

<p>                                $result[wr_subject],</p>

<p>                         ),

        '숫자' =>    array(

                            '1',

                            '2',

                        )

    );</p>

<p>$query="select * from g5_write_999_202 ";

$result=sql_query($query);</p>

<p>                <select name="wr_40" id="wr_40">

                        <option value="">선택</option>

                        <?foreach($service_1st_arr AS $st1Val){?>

                            <option value="<?=$st1Val?>"<?php echo get_selected($wr_40, $st1Val); ?>><?=$st1Val?></option>

                        <?}?>

                    </select></p>

<p><?if(!sizeof($service_2st_arr[$wr_40]) ) $wr_4_hidden = "display: none;";</p>

<p>?>

         <select name='wr_4' id="wr_4" style='<?=$wr_4_hidden?>'>

         <option value=''>선택</option>

      <?for($i=0; $row=sql_fetch_array($result); $i++){?>

          <option value='<?=$row[wr_subject]?>'><?=$row[wr_subject]?></option>

            <?}?>

         </select></p>

<p><script></p>

<p>$('#wr_40').change(function(){

    var val_40 = $(this).val(),

        arr_4 = JSON.parse('<?=json_encode($service_2st_arr)?>'),

        opt_4 = '';

    

    if(val_40 in arr_4){

        $('#wr_4').empty();

        len_4 = arr_4[val_40].length;</p>

<p>        opt_4 = "<option value=''>선택</option>";

        for(var i=0; i<len_4; i++){

            opt_4 += "<option value='"+arr_4[val_40][i]+"'>"+arr_4[val_40][i]+"</option>";

        }

        

        $('#wr_4').append(opt_4);

        $('#wr_4').show();

    }else{

        $('#wr_4').hide();

    }

});</p>

<p></script>

 

소스가 중구난방으로 되어있는데 요약하자면

 

1차 <select> 한글 혹은 숫자를 선택시 한글에 가,나 ,다 이렇게 다른테이블꺼를 for문으로 돌릴려고하는데 어떻게해야좋을지요ㅠㅠ

위에 숫자처럼 1,2,3,4, 이렇게 직접 입력하면되는데 저 배열안에서 for문을 줄수있는지가 의문입니다..

$query="select * from g5_write_999_202 ";
$result=sql_query($query); 이부분에서

 

$result=sql_fetch($query);를 쓰면 $result[wr_subject]가 먹긴한데 당연히 첫번째 데이터밖에 뜨지않구요

 

$result=sql_query($query);를 쓰고 

한글=> array()안에다가 

for($i=0; $row=sql_fecth_array($result);$i++){

echo $row[wr_subject];

} 를 하면 오류가나구요

 

 

 

 

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

답변 1개

채택된 답변
+20 포인트

배열 안에서 for 문을 돌리면 안될거 같고요.

배열을 만들어서

배열 안에 넣어 보심 어떨까 싶습니다.

 

$test = array(); 

for( $i = 0 ;  $row=sql_fecth_array($result)  ; $i++ ){

    array_push( $test , $row[wr_subject]   );

}

$test 라는 배열을 만든 다음....

 

 

$service_2st_arr = array(

        '한글' =>    array(

                                $test

                         ),

        '숫자' =>    array(

                            '1',

                            '2',

                        )

    );

요렇게요..

 

 

 

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

답변에 대한 댓글 3개

a
aaab
5년 전
이렇게하면 페이지가 먹통이되네요ㅠㅠ
a
aaab
5년 전
$test = array();
for( $i = 0 ; $row=sql_fecth_array($result) ; $i++ ){
array_push( $test , $row[wr_subject] );
}

아 여기부분에서 fecth-> fetch 오타가있었네요 ㅠㅠ근데 한가지
저렇게 배열을 만들면
option 값에 들어가있는 값이 다나옵니다 -> 가,나,다,라,마,바사 ........
저는


다 이렇게 한개씩 선택되게하고싶어서요ㅠㅠ
하얀감자
5년 전
일단 $service_2st_arr 배열이

원하시는 대로 값이 잘 셋팅 됐는지 확인 해 보세요.

$service_2st_arr = array(

        '한글' =>    array(

                              '가'

                              '나',

                              '다'

                         ),

        '숫자' =>    array(

                            '1',

                            '2',

                        )

    );





이런식으로 잘 만들어 졌는지 확인해 보시고요.

arr_4 = JSON.parse('<?=json_encode($service_2st_arr)?>'),

이 라인 이후에

arr_4 값도 값을 찍어서 확인해 보시고

배열이 일단 괞찮게 만들어 졌는지 확인 해 

보실 필요가 있을듯 하네요.

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

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

로그인