카트에서 수량변경

Q & A

질답게시판

홈 > 회원포럼 > 질답/버그/제안
질답/버그/제안

카트에서 수량변경

16 태극 2 82

안녕하세요.

이전 질문이 좀 미흡했기에 다시 질문드립니다.

카트에서 [선택사항수정] 에 들어가서 수량변경하는 부분을 아래 사진처럼 cart.skin.php 에서 바로 변경하고 싶습니다.

그런데 2번째 항목의 수량을 변경해도 첫번째에 합산되어서 나오고 있습니다.

각각 수량 변경해도 해당 항목에 합계를 변경하게 만들고 싶습니다.

도움 부탁드립니다.



cart.skin.php 내용은 아래처럼 for 문 내에 수량 출력하는 부분을 cartoption.skin.php 에서 따다 붙였습니다.

아래 29행부터 64까지..


  <?php for($i=0;$i < count($item); $i++) { ?>
   <tr<?php echo ($i == 0) ? ' class="tr-line"' : '';?>>
    <td class="text-center">
     <label for="ct_chk_<?php echo $i; ?>" class="sound_only">상품</label>
     <input type="checkbox" name="ct_chk[<?php echo $i; ?>]" value="1" id="ct_chk_<?php echo $i; ?>" checked="checked">
    </td>
    <td class="text-center">
     <div class="item-img">
      <?php echo get_it_image($item[$i]['it_id'], 100, 100); ?>
      <div class="item-type">
       <?php echo $item[$i]['pt_it']; ?>
      </div>
     </div>
    </td>
    <td>
                
     <input type="hidden" name="it_id[<?php echo $i; ?>]" value="<?php echo $item[$i]['it_id']; ?>">
     <input type="hidden" name="it_name[<?php echo $i; ?>]" value="<?php echo get_text($item[$i]['it_name']); ?>">
     <a href="./item.php?it_id=<?php echo $item[$i]['it_id'];?>">
      <b><?php echo stripslashes($item[$i]['it_name']); ?></b>
                        <?php echo "(" . number_format($item[$i]['ct_price']) . ")"; ?>
     </a>
     <?php if($item[$i]['it_options']) { ?>
      <div class="well well-sm"><?php echo $item[$i]['it_options'];?></div>
      <button type="button" class="btn btn-primary btn-sm btn-block mod_options">선택사항수정</button>
     <?php } ?>
                </td>
                <td>
                    <div id="it_sel_option">
                        <?php
                        if(!$option_item) {
                            if(!$it['it_buy_min_qty'])
                                $it['it_buy_min_qty'] = 1;
                        ?>
                            <ul id="it_opt_added">
                                <li class="list-group-item" style="border:hidden; margin:0 0 0 0; padding:0 0 0 0;">
                                    <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" id="io_price" value="<?php echo $item[$i]['ct_price']; ?>">
                                    <input type="hidden" class="it_price" id="it_price" value="<?php echo $item[$i]['sell_price']; ?>">
                                    <input type="hidden" class="io_stock" value="<?php echo $it['it_stock_qty']; ?>">
                                    <div class="input-group">
                                        <label for="ct_qty_<?php echo $i; ?>" class="sound_only">수량</label>
                                        <input type="text" name="ct_qty[<?php echo $item[$i]['it_id']; ?>][]" value="<?php echo $it['it_buy_min_qty']; ?>" id="ct_qty_<?php echo $i; ?>" class="form-control input-sm" size="5">
                                        <div class="input-group-btn">
                                            <button type="button" class="it_qty_plus btn btn-lightgray btn-sm"><i class="fa fa-plus-circle fa-lg"></i><span class="sound_only">증가</span></button>
                                            <button type="button" class="it_qty_minus btn btn-lightgray btn-sm"><i class="fa fa-minus-circle fa-lg"></i><span class="sound_only">감소</span></button>
                                        </div>
                                    </div>
                                    <script>
                                    $(function() {
                                        price_calculate();
                                    });
                                    </script>
                                </li>
                            </ul>
                        </div>
                        <!-- 총 구매액 -->
                        <div class="price-sum">
                            총 금액 <b><span id="it_tot_price" class="font-20 red en">0원</span></b>
                        </div>
     <?php } ?>
                </td>
    <td class="text-right"><?php echo number_format($item[$i]['ct_price']); ?></td>
    <td class="text-right"><span id="sell_price_<?php echo $i; ?>"><?php echo number_format($item[$i]['sell_price']); ?></span></td>
    <td class="text-right"><?php echo number_format($item[$i]['point']); ?></td>
    <td class="text-center"><?php echo $item[$i]['ct_send_cost']; ?></td>
   </tr>
  <?php } ?>


중간에서 price_calculate() 를 호출하는건 처음에 합계를 표시하는것 같고..

증가 감소는 shop.js 에서


$(document).on("click", "#it_sel_option li button", function()


이 함수가 처리하는것 같은데....증가 클릭시에는


            case "증가":
                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);
                price_calculate();
                break;


위에서 price_calculate() 함수 내용은


// 가격계산
function price_calculate()
{
    var it_price = parseInt($("input#it_price").val());

    if(isNaN(it_price)){
        return;
 }
  
 
    var $el_prc = $("input.io_price");
    var $el_qty = $("input[name^=ct_qty]");
    var $el_type = $("input[name^=io_type]");
    var price, type, qty, total = 0;
    $el_prc.each(function(index) {
        price = parseInt($(this).val());
        qty = parseInt($el_qty.eq(index).val());
        type = $el_type.eq(index).val();
        if(type == "0") { // 선택옵션
            total += (it_price) * qty;
        } else { // 추가옵션
            total += price * qty;
        }
    });
    $("#it_tot_price").empty().html(number_format(String(total))+"원");
}


요기서 it_tot_price 가 cart.skin.php 의


<span id="it_tot_price" class="font-20 red en">0원</span>


요 부분에 합계를 표시하는것 까지는 감을 잡았습니다.


 name="it_id[<?php echo $i; ?>]" value="<?php echo $item[$i]['it_id']; ?>"


이런것 처럼 it_tot_price를 it_tot_price[<?php echo $i; ?>] 이렇게 각각 항목을 배열로 처리해야 하는구나...라는 생각을 하고 있긴 한데...

 price_calculate() 항수에서 이걸 어떻게 받아서 처리해야 하는지 모르겠습니다.

2 Comments
M 한별아빠 03.14 01:41  
이건 이렇게 문의하셔도 눈대중으로 당장 뭐라고 이야기 못 드려요. 저도 작업해 봐야 아는 거라...ㅠㅠ
16 태극 03.14 10:04  
네...신경써주셔서 감사합니다. 
더 공부해봐야 겠네요.
수고하셔요~~^^
제목
최근 글
최근 댓글
Facebook Twitter GooglePlus KakaoStory KakaoTalk NaverBand