채택완료

콤마에 관해 질문있습니다.

2020-10-14 (수) 15:11:45 1,568
Copy
<?php 
                    for ($i=0; $row=sql_fetch_array($result); $i++) {
                    ?>

                    <li class="cart_goods">

                        <div class="cart_goods_detail">                            

                            <div class="cgd_top">
                                <label>
                                    <input type="hidden" name="ct_chk[<?php echo $i; ?>]" value="1" id="ct_chk_<?php echo $i; ?>">
                                    <label for="ct_chk_<?php echo $i; ?>"><span></span><b class="sound_only">상품선택</b></label>
                                    <span class="goods_name"><?php echo $it_name; ?></span>
                                </label> 
                            </div>

                            <div class="cgd_contents">
                                <div class="block">
                                        <section id="fregister_private">
                                            <table>
                                                <colgroup>
                                                    <col style="width:15%">
                                                    <col style="width:25%">
                                                    <col style="width:30%">
                                                    <col style="width:30%">
                                                </colgroup>
                                                <thead>
                                                <tr>
                                                    <th></th>
                                                    <th>구매수량</th>
                                                    <th>정상가</th>
                                                    <th>소계</th>
                                                </tr>
                                                </thead>
                                                <tbody>
                                                <tr>
                                                    <td class="img_area"><?php echo $image; ?></td>
                                                    <td>
                                                    <input type="text" name="ct_qty[<?php echo $row['it_id']; ?>][]" id="ct_qty_<?php echo $i; ?>" class="qty input" placeholder="0"> 개
                                                    </td>
                                                    <td>
                                                    <input type="text" name="groupbuy_price[<?php echo $i; ?>]" id="groupbuy_price_<?php echo $i; ?>" class="unit input2" value="<?php echo $row['it_price']; ?>"> 원
                                                    </td>
                                                    <td>
                                                    <input type='text' name="groupbuy_total[<?php echo $i; ?>]" id="groupbuy_total_<?php echo $i; ?>" readonly class='amount input2' placeholder="0"> 원
                                                    </td>
                                                 </tr>
                                                </tbody>
                                            </table>
                                        </section>
                                </div>

                            </div>
                        </div>

                    </li>

                    <?php
                    } // for 끝
                    ?>

<ul class="list list4 total">
                <li class="th">총 상품금액</li>
                <li class="td"><span class="sum_price settle_price"><input type="text" name="total_price" readonly class="total_price input3" placeholder="0"></span> 원</span>
            </ul>

<script>
function comma(str) {
    str = String(str);
    return str.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, '$1,');
}

function uncomma(str) {
    str = String(str);
    return str.replace(/[^\d]+/g, '');
}

$(".qty").on('input', function () {
    var self = $(this);
    var unitVal = self.parent().next().children('.unit').val();
    self.parent().next().next().children('input').val(unitVal * self.val());
   fnAlltotal();
});

$(".unit").on('input', function () {
    var self = $(this);
    var qtyVal = self.parent().prev().children('.qty').val();
    self.parent().next().children('input').val(qtyVal * self.val());
  fnAlltotal();
});


function fnAlltotal(){
  
  var total=0
 
  var total_ea=0
  var total_percent=0
  var total_price=0
  var total_sale=0    

    $(".amount").each(function(){
         total += parseFloat($(this).val()||0);
    });

    $(".total_price").val(comma(total));

    $(".qty").each(function(){
         total_ea += parseFloat($(this).val()||0);
    });

    $(".total_ea").val(comma(total_ea));

    if (total_ea >= <?php echo $ev['ev_mini_ea'] ?> && total_ea < <?php echo $ev['ev_first_ea'] ?>) {
        total_percent += <?php echo $ev['ev_first_percent'] ?>;
    } else if (total_ea > <?php echo $ev['ev_first_ea'] ?> && total_ea < <?php echo $ev['ev_second_ea'] ?>) {
        total_percent += <?php echo $ev['ev_second_percent'] ?>;
    } else if (total_ea > <?php echo $ev['ev_second_ea'] ?>) {
        total_percent += <?php echo $ev['ev_third_percent'] ?>;
    } else {
        total_percent += <?php echo $ev['ev_first_percent'] ?>;
    }
    
    $(".total_percent").val(total_percent);

    //total_price += $(".result").val(total)-($(".result").val(total)*($(".total_percent").val(total_percent)/100));
    total_price += total-(total*(total_percent/100));

    $(".result").val(total_price);

    total_sale += total*(total_percent/100);

    $(".total_sale").val(total_sale);
}
</script>

위와 같이 jquery로 수식계산을 하는데 중요한건 세자리마다 콤마를 넣길원하는데 

총 상품금액은 $(".total_price").val(comma(total)); 와 같이 잘나옵니다. 그런데 소계와 상품가격도 콤마가 들어가야하는데 self.parent().next().next().children('input').val(unitVal * self.val()); 에서 self.parent().next().next().children('input').val(comma(unitVal * self.val())); 이런식으로 바꿔주면 소계에서 콤마가 잘나오지만 계산시 콤마가 들어가 합계에서 콤마 다음은 잘려서 나옵니다. uncomma를 계산 시 쓰면 되는것 같은데 아무리 해봐도 원하는 답이 안나오네요 ㅠ.ㅠ 아시는 분 있으시면 답변 부탁드리겠습니다. 감사합니다.

|

답변 2개 / 댓글 2개

채택된 답변
+20 포인트

그누보드 스크립트 내장함수중에 number_format()이있습니다

이걸로 콤마 표현하시면되구요

var sub_total = unitVal * self.val()

self.parent().next().next().children('input').val(number_format(sub_total));

이런식으로 표현하면 되지않을까싶네요

답변에 대한 댓글 1개

네 그것도 해봤는데 총상금 금액에서 이전에 콤마로 합계가 나오다 보니 계산이 콤마 아래로는 안나오는거 였거든요 ㅠ.ㅠ

fnAlltotal 안에서 계산할때 콤마를 붙어서 그런거처럼 보이는데요. 계산하기전에 콤마 떼고 계산 후에 콤마 붙이는 걸로 되지 않을까요?

$(".qty").on('input', function () {
    var self = $(this);
    var unitVal = self.parent().next().children('.unit').val();
    var totVal = unitVal * self.val();
    self.parent().next().next().children('input').val(totVal);
    fnAlltotal();
    self.parent().next().next().children('input').val(comma(totVal));
});

답변에 대한 댓글 1개

주신 서식으로 해봤지만 결과적으로는 총 상금금액에서 콤마 아래는 잘려서 나오네요 ㅠ.ㅠ

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