영카트 선택옵션을 선택후 장바구니에 담아지지않습니다;;
본문
선택옵션이 없는 상품은 장바구니로 잘가지는데 선택옵션을 생성하고 선택하면 장바구니에 담아지지 않습니다..
lib/shop.lib.php 부분을 수정하였습니다.
// 옵션선택목록 만들기
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 .= '<div class="p_d_option2">'.PHP_EOL;
$select = '<select id="it_option_'.$seq.'" class="market_select"'.$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;
$select.PHP_EOL;
$str .= '</div>'.PHP_EOL;
}
}
} else {
$str .= '<div class="p_d_option2">'.PHP_EOL;
$select = '<select id="it_option_1" class="market_select">'.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 if ($row['io_price'] == 0)
$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 .= '</div>'.PHP_EOL;
}
- item.form.skin.php 코드 부분입니다.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
//add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_CSS_URL.'/style.css">', 0);
?>
<form name="fitem" id="fitem" method="post" action="<?php echo $action_url; ?>" onsubmit="return fitem_submit(this);">
<input type="hidden" name="it_id[]" value="<?php echo $it_id; ?>">
<input type="hidden" name="sw_direct">
<input type="hidden" name="url">
<section class="detail">
<!-- 상품이미지 미리보기 시작 { -->
<article class="pro_detail_img">
<?php
$big_img_count = 0;
$thumbnails = array();
$img = get_it_thumbnail_no($it['it_img3'], 571, 571);
if($img) {
// 썸네일
...
?>
</article>
<!-- } 상품이미지 미리보기 끝 -->
<article class="pro_detail_info">
<div class="p_d_h1"><?php echo stripslashes($it['it_name']); ?></div>
<div class="p_d_h2"><?php echo $it['it_basic']; ?></div>
<div class="p_d_price">
<span class="price_sale"><?php echo number_format($it['it_cust_price'],0); ?> won</span>
<?php echo number_format(get_price($it),0); ?> won
<input type="hidden" id="it_price" value="<?php echo get_price($it); ?>">
</div>
<?php if ($is_orderable) { ?>
<!-- 총 구매액 -->
<div id="sit_tot_price"></div>
<?php } ?>
<?php if($is_soldout) { ?>
<p id="sit_ov_soldout">상품의 재고가 부족하여 구매할 수 없습니다.</p>
<?php } ?>
<div class="p_d_option" id="item_info_area">
<?php
if(!$it['it_buy_min_qty'])
$it['it_buy_min_qty'] = 1;
?>
<input type="hidden" name="io_type[<?php echo $it_id; ?>][]" value="0">
<input type="hidden" name="io_id[<?php echo $it_id; ?>][]" value="">
<input type="hidden" name="io_value[<?php echo $it_id; ?>][]" value="<?php echo $it['it_name']; ?>">
<input type="hidden" class="io_price" value="0">
<input type="hidden" class="io_stock" value="<?php echo $it['it_stock_qty']; ?>">
<div class="count_btn_up"><a href="#" id="item_add_btn" ><img src="<?php echo G5_THEME_URL ?>/images/count_up.png" width="24px"></a></div>
<div class="count_btn_down"><a href="#" id="item_minus_btn"><img src="<?php echo G5_THEME_URL ?>/images/count_down.png" width="24px"></a></div>
<input type="text" class="frm_input count_input" name="ct_qty[<?php echo $it_id; ?>][]" value="<?php echo $it['it_buy_min_qty']; ?>" id="ct_qty_<?php echo $i; ?>" >
<?php
if($option_item) {
?>
<!-- 선택옵션 시작 { -->
<?php // 선택옵션
echo $option_item;
?>
<!-- } 선택옵션 끝 -->
<?php
}
?>
</div>
<div class="p_d_btn white">
<a href="#" id="add_cart_btn" ><div class="btn_gold">add to cart</div></a>
</div>
<div class="p_d_comment aaa">대량 구매 문의 시 <a href="<?php echo G5_BBS_URL; ?>/qalist.php"><u>1:1 comment</u></a> 를 이용해주세요.<br>배송, 교환 환불 시 <a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=notice"><u>notice</u></a>을 확인해주세요.</div>
<div class="p_d_page aaa">
<span><a href="<?php echo G5_URL; ?>">list</a></span>
<!-- 다른 상품 보기 시작 { -->
<?php
if ($prev_href) {
echo '<span>'.$prev_href.'pre'.$prev_href2.'</span>';
}else{
echo '<span style="opacity:0.5">pre</span>';
}
?>
<?php
if ($next_href) {
echo '<span>'.$next_href.'next'.$next_href2.'</span>';
}else{
echo '<span style="opacity:0.5">next</span>';
}
?>
<!-- } 다른 상품 보기 끝 -->
</div>
</article>
</section>
</form>
<script>
$(function(){
// 상품이미지 첫번째 링크
$("#sit_pvi_big a:first").addClass("visible");
// 상품이미지 미리보기 (썸네일에 마우스 오버시)
...
// 상품이미지 크게보기
...
// 장바구니 답기
$("#add_cart_btn").bind("click", function(event){
event.preventDefault();
var frm = document.getElementById("fitem");
document.pressed = "장바구니";
if(fitem_submit(frm)){
frm.submit();
}
});
// 수량증가
$("#item_add_btn").bind("click", function(event){
event.preventDefault();
var this_qty, max_qty = 9999, min_qty = 1;
var $el_qty = $("#item_info_area").find("input[name^=ct_qty]");
var stock = parseInt($("#item_info_area").find("input.io_stock").val());
this_qty = parseInt($el_qty.val().replace(/[^0-9]/, "")) + 1;
if(this_qty > stock) {
alert("재고수량 보다 많은 수량을 구매할 수 없습니다.");
this_qty = stock;
}
if(this_qty > max_qty) {
this_qty = max_qty;
alert("최대 구매수량은 "+number_format(String(max_qty))+" 입니다.");
}
$el_qty.val(this_qty);
});
// 수량감소
$("#item_minus_btn").bind("click", function(event){
event.preventDefault();
var this_qty, max_qty = 9999, min_qty = 1;
var $el_qty = $("#item_info_area").find("input[name^=ct_qty]");
var stock = parseInt($("#item_info_area").find("input.io_stock").val());
this_qty = parseInt($el_qty.val().replace(/[^0-9]/, "")) - 1;
if(this_qty < min_qty) {
this_qty = min_qty;
alert("최소 구매수량은 "+number_format(String(min_qty))+" 입니다.");
}
$el_qty.val(this_qty);
});
});
// 바로구매, 장바구니 폼 전송
function fitem_submit(f)
{
if (document.pressed == "장바구니") {
f.sw_direct.value = 0;
} else { // 바로구매
f.sw_direct.value = 1;
}
// 판매가격이 0 보다 작다면
if (document.getElementById("it_price").value < 0) {
alert("전화로 문의해 주시면 감사하겠습니다.");
return false;
}
var val, io_type, result = true;
var sum_qty = 0;
var min_qty = parseInt(<?php echo $it['it_buy_min_qty']; ?>);
var max_qty = parseInt(<?php echo $it['it_buy_max_qty']; ?>);
var $el_type = $("input[name^=io_type]");
$("input[name^=ct_qty]").each(function(index) {
val = $(this).val();
if(val.length < 1) {
alert("수량을 입력해 주십시오.");
result = false;
return false;
}
if(val.replace(/[0-9]/g, "").length > 0) {
alert("수량은 숫자로 입력해 주십시오.");
result = false;
return false;
}
if(parseInt(val.replace(/[^0-9]/g, "")) < 1) {
alert("수량은 1이상 입력해 주십시오.");
result = false;
return false;
}
io_type = $el_type.eq(index).val();
if(io_type == "0")
sum_qty += parseInt(val);
});
if(!result) {
return false;
}
if(min_qty > 0 && sum_qty < min_qty) {
alert("선택옵션 개수 총합 "+number_format(String(min_qty))+"개 이상 주문해 주십시오.");
return false;
}
if(max_qty > 0 && sum_qty > max_qty) {
alert("선택옵션 개수 총합 "+number_format(String(max_qty))+"개 이하로 주문해 주십시오.");
return false;
}
return true;
}
</script>