선택옵션 라디오 버튼으로 변경할수 있도록 도와주세요.

선택옵션 라디오 버튼으로 변경할수 있도록 도와주세요.

QA

선택옵션 라디오 버튼으로 변경할수 있도록 도와주세요.

본문

선택옵션 라디오 버튼으로 변경할수 있도록 도와주세요. 

 

lib/ship.lib.php 에서

 

915줄 부터

// 상품 선택옵션

function get_item_options($it_id, $subject)

{

    global $g5;

 

    if(!$it_id || !$subject)

        return '';

 

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

    $result = sql_query($sql);

    if(!mysql_num_rows($result))

        return '';

 

    $str = '';

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

    $subj_count = count($subj);

 

    if($subj_count > 1) {

        $options = array();

 

        // 옵션항목 배열에 저장

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

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

 

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

                if(!is_array($options[$k]))

                    $options[$k] = array();

 

                if($opt_id[$k] && !in_array($opt_id[$k], $options[$k]))

                    $options[$k][] = $opt_id[$k];

            }

        }

 

        // 옵션선택목록 만들기

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

            $opt = $options[$i];

            $opt_count = count($opt);

            $disabled = '';

            if($opt_count) {

                $seq = $i + 1;

                if($i > 0)

                    $disabled = ' disabled="disabled"';

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

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

                $select = '<select id="it_option_'.$seq.'" class="it_option"'.$disabled.'>'.PHP_EOL;

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

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

                    $opt_val = $opt[$k];

                    if(strlen($opt_val)) {

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

                    }

                }

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

 

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

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

            }

        }

    } else {

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

        $str .= '<th><label for="it_option_1">'.$subj[0].'</label></th>'.PHP_EOL;

 

        $select = '<select id="it_option_1" class="it_option">'.PHP_EOL;

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

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

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

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

            else

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

 

            if($row['io_stock_qty'] < 1)

                $soldout = '  [품절]';

            else

                $soldout = '';

 

            $select .= '<option value="'.$row['io_id'].','.$row['io_price'].','.$row['io_stock_qty'].'">'.$row['io_id'].$price.$soldout.'</option>'.PHP_EOL;

        }

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

 

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

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

    }

 

    return $str;

}

 

 

 

 

<select> 박스 만드는 부분을 수정하면 될거라고 생각은 하는데 정확하게 어떻게 고쳐야할지 모르겠네요.

 

이 질문에 댓글 쓰기 :

답변 2

} else {

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

        $str .= '<th><label for="it_option_1">'.$subj[0].'</label></th>'.PHP_EOL;

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

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

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

            else

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

 

            if($row['io_stock_qty'] < 1)

                $soldout = '  [품절]';

            else

                $soldout = '';

 

            $select .= '<input type="radio" name="it_supply" value="'.$row['io_id'].','.$row['io_price'].','.$row['io_stock_qty'].'">'.$row['io_id'].$price.$soldout.'<br>'.PHP_EOL;

        }

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

 

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

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

    }

 

 

 

이렇게 바꾸니까 라디오 버튼 정상적으로 생성되었는데, 제품 합계 합산이 안되네요.. 휴~


 
// 상품 추가옵션
function c_get_item_supply($it_id, $subject)
{
    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
                $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]][] = '<label><input type="radio" name="it_supply" id="it_supply" value="'.$opt_id[1].','.$row['io_price'].','.$io_stock_qty.'">'.$opt_id[1].$price.$soldout.'</label><br>';
        }
    }
 
    // 옵션항목 만들기
    for($i=0; $i<$subj_count; $i++) {
        $opt = $options[$subj[$i]];
        $opt_count = count($opt);
        if($opt_count) {
            $seq = $i + 1;
            $str .= '<tr>'.PHP_EOL;
            $str .= '<th style="display: none"><label for="it_supply_'.$seq.'">'.$subj[$i].'</label></th>'.PHP_EOL;
 
            for($k=0; $k<$opt_count; $k++) {
                $opt_val = $opt[$k];
                if($opt_val) {
                    $select = $opt_val.PHP_EOL;
                }
            }
 
            $str .= '<td class="td_sit_sel">'.$select.'</td>'.PHP_EOL;
            $str .= '</tr>'.PHP_EOL;
        }
    }
 
    return $str;
}

 

이런식으로 함수를 하나더 만들어서 했더니 잘적용은 되네요

답변을 작성하시기 전에 로그인 해주세요.
전체 58
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT