추가옵션 장바구니 질문드립니다.

추가옵션 장바구니 질문드립니다.

QA

추가옵션 장바구니 질문드립니다.

답변 1

본문

추가옵션을 select 형식에서 input:radio 형식으로 바꿨습니다.

그리고 자바스크립트도 바꿨는데 장바구니에 선택한 옵션들이 나오지 않습니다.

물론 바로구매에도 나오지 않구요.. 어디가 문제인지 아니면 참고할만한 것들이 있는지 혹은 추가로 변경해야하는 부분이 있는지 조언 부탁드립니다.

 

shop.lib.php

function get_item_supply($it_id, $subject, $is_div = '', $is_first_option_title = '')

{

    global $g5;

 

    if (!$it_id || !$subject)

        return '';

 

    $sql = " select * from {$g5['g5_shop_item_option_table']} where io_type = '1' and it_id = '$it_id' and io_use = '1' order by io_no asc ";

    $result = sql_query($sql);

    if (!sql_num_rows($result))

        return '';

 

    $str = '';

 

    $subj = explode(',', $subject);

    $subj_count = count($subj);

    $options = array();

 

    // 옵션항목 배열에 저장

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

        $opt_id = explode(chr(30), $row['io_id']);

 

        if ($opt_id[0] && !array_key_exists($opt_id[0], $options))

            $options[$opt_id[0]] = array();

 

        if (strlen($opt_id[1])) {

            if ($row['io_price'] > 0)

                $price = '  + ' . number_format($row['io_price']) . '원';

            else if ($row['io_price'] == 0)

                $price = ' ';

            else

                $price = '   ' . number_format($row['io_price']) . '원';

            $io_stock_qty = get_option_stock_qty($it_id, $row['io_id'], $row['io_type']);

 

            if ($io_stock_qty < 1)

                $soldout = '  [품절]';

            else

                $soldout = '';

 

            $options[$opt_id[0]][] = '<input type="radio" name="option_' . $opt_id[0] . '" id="option-label' . $i . '" value="' . $opt_id[1] . ',' . $row['io_price'] . ',' . $io_stock_qty . '" class="it_supply"><label for="option-label' . $i . '" style="background:#' . $row['color'] . '; margin-bottom:3px">' . $opt_id[1] . $price . $soldout . '</label>';

        }

    }

 

    // 옵션항목 만들기

    for ($i = 0; $i < $subj_count; $i++) {

        $opt = (isset($subj[$i]) && isset($options[$subj[$i]])) ? $options[$subj[$i]] : array();

        $opt_count = count($opt);

        if ($opt_count) {

            $seq = $i + 1;

            if ($is_div === 'div') {

                $str .= '<div class="get_item_supply">' . PHP_EOL;

                $str .= '<label for="it_supply_' . $seq . '" class="label-title">' . $subj[$i] . '</label>' . PHP_EOL;

            } else {

                $str .= '<tr>' . PHP_EOL;

                $str .= '<th><label for="it_supply_' . $seq . '">' . $subj[$i] . '</label></th>' . PHP_EOL;

            }

 

            $first_option_title = $is_first_option_title ? $subj[$i] : '선택';

 

            $select = '<div id="it_supply_' . $seq . '" class="it_supply">' . PHP_EOL;

            //$select .= '<option value="">' . $first_option_title . '</option>' . PHP_EOL;

            for ($k = 0; $k < $opt_count; $k++) {

                $opt_val = $opt[$k];

                if ($opt_val) {

                    $select .= $opt_val . PHP_EOL;

                }

            }

            $select .= '</select>' . PHP_EOL;

 

            if ($is_div === 'div') {

                $str .= '<span class="td_sit_sel">' . $select . '</span>' . PHP_EOL;

                $str .= '</div>' . PHP_EOL;

            } else {

                $str .= '<td class="td_sit_sel">' . $select . '</td>' . PHP_EOL;

                $str .= '</tr>' . PHP_EOL;

            }

        }

    }

 

    return $str;

}

 

 

shop.js

2106178160_1687847370.4074.png

 

2106178160_1687847448.1336.png

 

 

 

이 질문에 댓글 쓰기 :

답변 1

select box => 1가지 선택값

radio button =>  다중 선택값

 

당연히 프로그램 자체 전반적으로 모두 수정하셔야 합니다.

금액 측정 하는 부분 부터...데이터 넣는데 까지...

 

참고 하셨음 합니다.

https://sir.kr/yc5_tip/263

답변을 작성하시기 전에 로그인 해주세요.
전체 4
© SIRSOFT
현재 페이지 제일 처음으로