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

select문 selected 작업오류 와 배열값추출 문제등 질문몇가지 드립니다. 채택완료

태흔쓰12 4년 전 조회 2,107

택배사 선택시 택배사 요금표가 출력되며 옆에 input창 (수량)만 적으면 요금*수량이 체크되어 배송비에 등록되는 작업을 하고있습니다.

 

첫번째 문제는 select 박스를 선택시 출력되는 택배사가 모두 selected값을 가지고 출력이 됩니다.
선택클릭했을때... selected가 체크가 되어야 하는게 맞는데요.. 이문제가 해결이 안되네요.ㅠ
$dv_row['dv_no'] = [0,1,2,3,4] 등록되어 있는 값 입니다.

 

두번째로 for문에서 ['dv_no'](배송고유번호)  $dv_set[]= $dv_row['dv_no']; 을 배열로 담아 select박스에서 선택 후 수량입력하여 등록하면
$dv_set[1]의 $dv['dv_name'](택배사명) 로만 등록되는 문제가 발생됩니다. select박스에서 선택한 택배사명이 등록되어야하는데요..ㅠ

 

세번째로 작업중인 아래의 코드를 보시면 택배사가 늘어나면 늘어날수록 <tbody>와<script>숫자와 변수만다른 같은 코드들이 거의 복사 붙여넣기 식으로 증가되어야 하는 것 같습니다.
코드를 줄일 수있는 방법이 있다면 조언부탁드리겠습니다. 


<tbody>

<tr>

    <th scope="row"><label for="it_sc_method">택배사 선택</label></th>

    <td>

        <select name="it_sc_method" id="dv_sc_method">

            <?php

            $dv_sql = "select * from {$g5['delivery_table']} order by `dv_no` ASC";

            $dv_result = sql_query($dv_sql);

            for ($i=0; $dv_row=sql_fetch_array($dv_result); $i++) {

                echo "<option value=\"".$i."\"".get_selected($dv_row['dv_no'], $i).">".$dv_row['dv_name']."</option>\n";

                $dv_set[]= $dv_row['dv_no'];

            }

            ?>

        </select>

    </td>

</tr>

</tbody>

<?php if(isset($dv_set[0])){

    $dv_sql1 = "select * from {$g5['delivery_table']} where dv_no = '{$dv_set[0]}' ";

    $dv_result1 = sql_query($dv_sql1);

    $dv = sql_fetch_array($dv_result1);

    ?>

    <tbody id="dv_con_type">

    <tr>

        <th scope="row"><?php echo $dv['dv_type1']; ?>(<?php echo $dv['dv_price1']; ?> 원)</th>

        <td class="td_extra">

            <input type="hidden" name="it_dv_price1" id="it_dv_price1" value="<?php echo $dv['dv_price1']; ?>">

            <input type="text" name="it_6" id="it_6" value="<?php echo get_text($it['it_6']) ?>" class="frm_input" onkeyup="call();">

        </td>

    </tr>

    <tr>

        <th scope="row"><?php echo $dv['dv_type2']; ?>(<?php echo $dv['dv_price2']; ?> 원)</th>

        <td class="td_extra">

            <input type="hidden" name="it_dv_price2" id="it_dv_price2" value="<?php echo $dv['dv_price2']; ?>">

            <input type="text" name="it_7" id="it_7" value="<?php echo get_text($it['it_7']) ?>" class="frm_input" onkeyup="call();">

        </td>

    </tr>

    <tr>

        <th scope="row"><?php echo $dv['dv_type3']; ?>(<?php echo $dv['dv_price3']; ?> 원)</th>

        <td class="td_extra">

            <input type="hidden" name="it_dv_price3" id="it_dv_price3" value="<?php echo $dv['dv_price3']; ?>">

            <input type="text" name="it_8" id="it_8" value="<?php echo get_text($it['it_8']) ?>" class="frm_input" onkeyup="call();">

        </td>

    </tr>

    <tr>

        <th scope="row"><?php echo $dv['dv_type4']; ?>(<?php echo $dv['dv_price4']; ?> 원)</th>

        <td class="td_extra">

            <input type="hidden" name="it_dv_price4" id="it_dv_price4" value="<?php echo $dv['dv_price4']; ?>">

            <input type="text" name="it_9" id="it_9" value="<?php echo get_text($it['it_9']) ?>" class="frm_input" onkeyup="call();">

        </td>

    </tr>

    <tr>

        <th scope="row"><?php echo $dv['dv_type5']; ?>(<?php echo $dv['dv_price5']; ?> 원)</th>

        <td class="td_extra">

            <input type="hidden" name="it_dv_price5" id="it_dv_price5" value="<?php echo $dv['dv_price5']; ?>">

            <input type="text" name="it_10" id="it_10" value="<?php echo get_text($it['it_10']) ?>" class="frm_input" onkeyup="call();" size="5">

        </td>

    </tr>

    </tbody>

<?php } ?>

<?php if(isset($dv_set[1])){

    $dv_sql2 = "select * from {$g5['delivery_table']} where dv_no = '{$dv_set[1]}' ";

    $dv_result2 = sql_query($dv_sql2);

    $dv = sql_fetch_array($dv_result2);

    ?>

    <tbody id="dv_con_type1">

    <tr>

        <th scope="row"><?php echo $dv['dv_type1']; ?>(<?php echo $dv['dv_price1']; ?> 원)</th>

        <td class="td_extra">

            <input type="hidden" name="it_dv_price1" id="it_dv_price1_1" value="<?php echo $dv['dv_price1']; ?>">

            <input type="text" name="it_6" id="it_6_1" value="<?php echo get_text($it['it_6']) ?>" class="frm_input" onkeyup="call1();">

        </td>

    </tr>

    <tr>

        <th scope="row"><?php echo $dv['dv_type2']; ?>(<?php echo $dv['dv_price2']; ?> 원)</th>

        <td class="td_extra">

            <input type="hidden" name="it_dv_price2" id="it_dv_price2_1" value="<?php echo $dv['dv_price2']; ?>">

            <input type="text" name="it_7" id="it_7_1" value="<?php echo get_text($it['it_7']) ?>" class="frm_input" onkeyup="call1();">

        </td>

    </tr>

    <tr>

        <th scope="row"><?php echo $dv['dv_type3']; ?>(<?php echo $dv['dv_price3']; ?> 원)</th>

        <td class="td_extra">

            <input type="hidden" name="it_dv_price3" id="it_dv_price3_1" value="<?php echo $dv['dv_price3']; ?>">

            <input type="text" name="it_8" id="it_8_1" value="<?php echo get_text($it['it_8']) ?>" class="frm_input" onkeyup="call1();">

        </td>

    </tr>

    <tr>

        <th scope="row"><?php echo $dv['dv_type4']; ?>(<?php echo $dv['dv_price4']; ?> 원)</th>

        <td class="td_extra">

            <input type="hidden" name="it_dv_price4" id="it_dv_price4_1" value="<?php echo $dv['dv_price4']; ?>">

            <input type="text" name="it_9" id="it_9_1" value="<?php echo get_text($it['it_9']) ?>" class="frm_input" onkeyup="call1();">

        </td>

    </tr>

    <tr>

        <th scope="row"><?php echo $dv['dv_type5']; ?>(<?php echo $dv['dv_price5']; ?> 원)</th>

        <td class="td_extra">

            <input type="hidden" name="it_dv_price5" id="it_dv_price5_1" value="<?php echo $dv['dv_price5']; ?>">

            <input type="text" name="it_10" id="it_10_1" value="<?php echo get_text($it['it_10']) ?>" class="frm_input" onkeyup="call1();" size="5">

        </td>

    </tr>

    </tbody>

<?php } ?>

<?php if(isset($dv_set[2])){

    $dv_sql3 = "select * from {$g5['delivery_table']} where dv_no = '{$dv_set[2]}' ";

    $dv_result3 = sql_query($dv_sql3);

    $dv3 = sql_fetch_array($dv_result3);

    ?>

    <tbody id="dv_con_type2">

    <tr>

        <th scope="row"><?php echo $dv3['dv_type1']; ?>(<?php echo $dv3['dv_price1']; ?> 원)</th>

        <td class="td_extra">

            <input type="hidden" name="it_dv_price1" id="it_dv_price1_2" value="<?php echo $dv3['dv_price1']; ?>">

            <input type="text" name="it_6" id="it_6_2" value="<?php echo get_text($it['it_6']) ?>" class="frm_input" onkeyup="call2();">

        </td>

    </tr>

    <tr>

        <th scope="row"><?php echo $dv3['dv_type2']; ?>(<?php echo $dv3['dv_price2']; ?> 원)</th>

        <td class="td_extra">

            <input type="hidden" name="it_dv_price2" id="it_dv_price2_2" value="<?php echo $dv3['dv_price2']; ?>">

            <input type="text" name="it_7" id="it_7_2" value="<?php echo get_text($it['it_7']) ?>" class="frm_input" onkeyup="call2();">

        </td>

    </tr>

    <tr>

        <th scope="row"><?php echo $dv3['dv_type3']; ?>(<?php echo $dv3['dv_price3']; ?> 원)</th>

        <td class="td_extra">

            <input type="hidden" name="it_dv_price3" id="it_dv_price3_2" value="<?php echo $dv3['dv_price3']; ?>">

            <input type="text" name="it_8" id="it_8_2" value="<?php echo get_text($it['it_8']) ?>" class="frm_input" onkeyup="call2();">

        </td>

    </tr>

    <tr>

        <th scope="row"><?php echo $dv3['dv_type4']; ?>(<?php echo $dv3['dv_price4']; ?> 원)</th>

        <td class="td_extra">

            <input type="hidden" name="it_dv_price4" id="it_dv_price4_2" value="<?php echo $dv3['dv_price4']; ?>">

            <input type="text" name="it_9" id="it_9_2" value="<?php echo get_text($it['it_9']) ?>" class="frm_input" onkeyup="call2();">

        </td>

    </tr>

    <tr>

        <th scope="row"><?php echo $dv3['dv_type5']; ?>(<?php echo $dv3['dv_price5']; ?> 원)</th>

        <td class="td_extra">

            <input type="hidden" name="it_dv_price5" id="it_dv_price5_2" value="<?php echo $dv3['dv_price5']; ?>">

            <input type="text" name="it_10" id="it_10_2" value="<?php echo get_text($it['it_10']) ?>" class="frm_input" onkeyup="call2();" size="5">

        </td>

    </tr>

    </tbody>

<?php } ?>

<tfoot>

<tr>

    <td>

        <input type="text" name="it_5" value="<?php echo get_text($dv['dv_name']) ?>" id="it_5" class="frm_input">

        <input type="text" name="it_sc_price" value="<?php echo $it['it_sc_price']; ?>" id="it_sc_price" class="frm_input" size="8"> 원

    </td>

</tr>

</tfoot>

<script>

    function call() {

        if(document.getElementById('it_6').value){

            document.getElementById('it_7').value ='';

            document.getElementById('it_8').value ='';

            document.getElementById('it_9').value ='';

            document.getElementById('it_10').value ='';

            document.getElementById('it_sc_price').value =parseInt(document.getElementById('it_6').value) * parseInt(document.getElementById('it_dv_price1').value);

            return;

        }

        if(document.getElementById('it_7').value){

            document.getElementById('it_6').value ='';

            document.getElementById('it_8').value ='';

            document.getElementById('it_9').value ='';

            document.getElementById('it_10').value ='';

            document.getElementById('it_sc_price').value =parseInt(document.getElementById('it_7').value) * parseInt(document.getElementById('it_dv_price2').value);

            return;

        }

        if(document.getElementById('it_8').value){

            document.getElementById('it_7').value ='';

            document.getElementById('it_6').value ='';

            document.getElementById('it_9').value ='';

            document.getElementById('it_10').value ='';

            document.getElementById('it_sc_price').value =parseInt(document.getElementById('it_8').value) * parseInt(document.getElementById('it_dv_price3').value);

            return;

        }

        if(document.getElementById('it_9').value){

            document.getElementById('it_7').value ='';

            document.getElementById('it_8').value ='';

            document.getElementById('it_6').value ='';

            document.getElementById('it_10').value ='';

            document.getElementById('it_sc_price').value =parseInt(document.getElementById('it_9').value) * parseInt(document.getElementById('it_dv_price4').value);

            return;

        }

        if(document.getElementById('it_10').value){

            document.getElementById('it_7').value ='';

            document.getElementById('it_8').value ='';

            document.getElementById('it_9').value ='';

            document.getElementById('it_6').value ='';

            document.getElementById('it_sc_price').value =parseInt(document.getElementById('it_10').value) * parseInt(document.getElementById('it_dv_price5').value);

            return;

        }

    }

    function call1() {

        if(document.getElementById('it_6_1').value){

            document.getElementById('it_7_1').value ='';

            document.getElementById('it_8_1').value ='';

            document.getElementById('it_9_1').value ='';

            document.getElementById('it_10_1').value ='';

            document.getElementById('it_sc_price').value =parseInt(document.getElementById('it_6_1').value) * parseInt(document.getElementById('it_dv_price1_1').value);

            return;

        }

        if(document.getElementById('it_7_1').value){

            document.getElementById('it_6_1').value ='';

            document.getElementById('it_8_1').value ='';

            document.getElementById('it_9_1').value ='';

            document.getElementById('it_10_1').value ='';

            document.getElementById('it_sc_price').value =parseInt(document.getElementById('it_7_1').value) * parseInt(document.getElementById('it_dv_price2_1').value);

            return;

        }

        if(document.getElementById('it_8_1').value){

            document.getElementById('it_7_1').value ='';

            document.getElementById('it_6_1').value ='';

            document.getElementById('it_9_1').value ='';

            document.getElementById('it_10_1').value ='';

            document.getElementById('it_sc_price').value =parseInt(document.getElementById('it_8_1').value) * parseInt(document.getElementById('it_dv_price3_1').value);

            return;

        }

        if(document.getElementById('it_9_1').value){

            document.getElementById('it_7_1').value ='';

            document.getElementById('it_8_1').value ='';

            document.getElementById('it_6_1').value ='';

            document.getElementById('it_10_1').value ='';

            document.getElementById('it_sc_price').value =parseInt(document.getElementById('it_9_1').value) * parseInt(document.getElementById('it_dv_price4_1').value);

            return;

        }

        if(document.getElementById('it_10_1').value){

            document.getElementById('it_7_1').value ='';

            document.getElementById('it_8_1').value ='';

            document.getElementById('it_9_1').value ='';

            document.getElementById('it_6_1').value ='';

            document.getElementById('it_sc_price').value =parseInt(document.getElementById('it_10_1').value) * parseInt(document.getElementById('it_dv_price5_1').value);

            return;

        }

    }

    function call2() {

        if(document.getElementById('it_6_2').value){

            document.getElementById('it_7_2').value ='';

            document.getElementById('it_8_2').value ='';

            document.getElementById('it_9_2').value ='';

            document.getElementById('it_10_2').value ='';

            document.getElementById('it_sc_price').value =parseInt(document.getElementById('it_6_2').value) * parseInt(document.getElementById('it_dv_price1_2').value);

            return;

        }

        if(document.getElementById('it_7_2').value){

            document.getElementById('it_6_2').value ='';

            document.getElementById('it_8_2').value ='';

            document.getElementById('it_9_2').value ='';

            document.getElementById('it_10_2').value ='';

            document.getElementById('it_sc_price').value =parseInt(document.getElementById('it_7_2').value) * parseInt(document.getElementById('it_dv_price2_2').value);

            return;

        }

        if(document.getElementById('it_8_2').value){

            document.getElementById('it_7_2').value ='';

            document.getElementById('it_6_2').value ='';

            document.getElementById('it_9_2').value ='';

            document.getElementById('it_10_2').value ='';

            document.getElementById('it_sc_price').value =parseInt(document.getElementById('it_8_2').value) * parseInt(document.getElementById('it_dv_price3_2').value);

            return;

        }

        if(document.getElementById('it_9_2').value){

            document.getElementById('it_7_2').value ='';

            document.getElementById('it_8_2').value ='';

            document.getElementById('it_6_2').value ='';

            document.getElementById('it_10_2').value ='';

            document.getElementById('it_sc_price').value =parseInt(document.getElementById('it_9_2').value) * parseInt(document.getElementById('it_dv_price4_2').value);

            return;

        }

        if(document.getElementById('it_10_2').value){

            document.getElementById('it_7_2').value ='';

            document.getElementById('it_8_2').value ='';

            document.getElementById('it_9_2').value ='';

            document.getElementById('it_6_2').value ='';

            document.getElementById('it_sc_price').value =parseInt(document.getElementById('it_10_2').value) * parseInt(document.getElementById('it_dv_price5_2').value);

            return;

        }

    }

    $(function() {

        <?php

        switch($dv_row['dv_sc_method']) {

            case 0:

                echo '$("#dv_con_type").show();'.PHP_EOL;

                echo '$("#dv_con_type1").hide();'.PHP_EOL;

                echo '$("#dv_con_type2").hide();'.PHP_EOL;

                break;

            case 1:

                echo '$("#dv_con_type").hide();'.PHP_EOL;

                echo '$("#dv_con_type1").show();'.PHP_EOL;

                echo '$("#dv_con_type2").hide();'.PHP_EOL;

                break;

            default:

                echo '$("#dv_con_type").hide();'.PHP_EOL;

                echo '$("#dv_con_type1").hide();'.PHP_EOL;

                echo '$("#dv_con_type2").hide();'.PHP_EOL;

                break;

        }

        ?>

        $("#dv_sc_method").change(function() {

            var type = $(this).val();

            switch(type) {

                case "0":

                    $("#dv_con_type").show();

                    $("#dv_con_type1").hide();

                    $("#dv_con_type2").hide();

                    break;

                case "1":

                    $("#dv_con_type").hide();

                    $("#dv_con_type1").show();

                    $("#dv_con_type2").hide();

                    break;

                default:

                    $("#dv_con_type").hide();

                    $("#dv_con_type1").hide();

                    $("#dv_con_type2").hide();

                    break;

            }

        });

    });

</script>

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

답변 1개

채택된 답변
+20 포인트
e
4년 전

</p>

<p>            <?php

            $dv_sql = "select * from {$g5['delivery_table']} order by `dv_no` ASC";

            $dv_result = sql_query($dv_sql);

            for ($i=0; $dv_row=sql_fetch_array($dv_result); $i++) {

                echo "<option value=\"".$dv_row['dv_no']."\"".get_selected($it_sc_method,$dv_row['dv_no']).">".$dv_row['dv_name']."</option>\n";

                $dv_set[]= $dv_row['dv_no'];

            }

            ?></p>

<p>

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

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

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

로그인