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

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

ryuworld 2년 전 조회 1,988

추가옵션을 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 = '&nbsp;&nbsp;[품절]';

            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

 

 

 

 

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

답변 1개

toqurk
2년 전

select box => 1가지 선택값

radio button =>  다중 선택값

 

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

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

 

참고 하셨음 합니다.

https://sir.kr/yc5_tip/263

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

답변에 대한 댓글 3개

r
ryuworld
2년 전
radio 버튼도 1가지 선택값 아닌가요? checkbox가 아닌 radio라 1가지 선택값으로 알고 있는데
t
toqurk
2년 전
아..맞네요..
제가 잘못읽었습니다. 죄송하네요...
참고 링크는 보셨어요?
도움이 될까 싶어 남겨놨는데....
r
ryuworld
2년 전
아니요..참고로 올려주신것들 다 해봤는데..안되서 올려봤습니다ㅠㅠ어디가 문제인지 도통 감이 안오네요..ㅠ

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

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

로그인