계산값 저장하기 질문드립니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
계산값 저장하기 질문드립니다.

QA

계산값 저장하기 질문드립니다.

본문

코드 초보입니다.

오늘 아주 해메고 있습니다.

아래 코드는 우여곡절 끝에 도움받아서 해결은 하였지만 마지막 저장을 해야되는데 저장으 어떤식으로 해야될지 해메고 있습니다.

 

게시판 여분 필드 상품1 "bo_6"에 수자 5,000 값을 넣고, 상품2 "bo_7"에는 수자 5,000 값을 넣고

합계 : 10,000이 나왔습니다.

 

<input type="checkbox" name="checkbox" value="<?php echo $board['bo_6'] ?>" id="wr_6" onclick="calc( this );" /> --> 5,000

 

<input type="checkbox" name="checkbox" value="<?php echo $board['bo_7'] ?>" id="wr_6" onclick="calc( this );" /> --> 5,000

 

<div id="desc"></div> --> 상품1 ( 6,000), 상품2 ( 7,000) 출력 

 

<input type="text" name="result" id="descValue" value="0" /> --> 합계 : 10,000

 

이렇게 나온 숫자값을 저장을 해야되는데요.

뷰페이지에는 <?php echo $view['wr_6']; ?> ,<?php echo $view['wr_7']; ?>,<?php echo $view['wr_8']; ?> 이렇게 하면 될듯한데요.

글쓰기 write.skin 페이지에서 상품1 --> <?php echo $wr_6 ?> 이렇게 넣으면 당연히 안될듯한데요. 

<?php echo ( $board['bo_6']  == $write['wr_1'] )  "checkbox" : "";?>

그래서 이부분을 이렇게 해도 안되네요.

방법이 있을까요?

 

링크 : https://wedgo1.cafe24.com/POTAL/bbs/write.php?w=u&bo_table=CELL2&wr_id=6

 

 

 

이 질문에 댓글 쓰기 :

답변 2


<input type="checkbox" name="wr_6" value="<?php echo $board['bo_6'] ?>" id="wr_6" onclick="calc( this );" <?php echo $board['board_6'] == $wr_6 ? 'checked' : '' ?> /> 
<input type="checkbox" name="wr_7" value="<?php echo $board['bo_7'] ?>" id="wr_7" onclick="calc( this );" <?php echo $board['board_7'] == $wr_7 ? 'checked' : '' ?> /> 

빠른 답변 감사합니다.  알려주신 방법으로 하였는데요.
체크를 안해도 체크값이 선택이 되어서 보여주네요.
그리고 합산이 안넘어가네요.

예를 들어 상품1 상품2 상품3이 있을경우
상품1과 상품3만 선택하면 선택한 것만 계산이 되게 한것이구요.
이걸 저장하려고 한겁니다.


아래는 스크립으로 계산한것이구요.

<script>
function calc( event )
{
  var result = 0;
  var desc_txt = [];
  var obj;
  // var form_obj = document[event.form.name];
  var form_obj = event.form;
  var form_length = form_obj['checkbox'].length;
  var desc = document.getElementById('desc');
  for ( var i=0; i<form_length; i++ )
  {
    obj = form_obj['checkbox'][i];
    if ( obj.checked == true ) {
      result += parseInt(obj.getAttribute('value'));
            // desc_txt.push(obj.parentNode.querySelector('p').innerHTML);

      desc_txt.push(obj.parentNode.querySelector('p').innerHTML + '('  + obj.value.replace(/\B(?=(\d{3})+(?!\d))/g, ",") +  ')');

    }
  }

  desc.innerHTML = desc_txt.join(',');
  form_obj['result'].value=result.toLocaleString();
}


    </script>

그리고 아래는 결과 값입니다.

<label for="wr_4">4번 금액 </label>
<ul>
<li>
<p><?php echo $board['bo_4'] ?></p>
<input type="checkbox" name="checkbox" value="<?php echo $board['bo_6'] ?>" id="wr_6" onclick="calc( this );" /><?php echo number_format($board['bo_6']); // ?>
</li>
<li>
<p><?php echo $board['bo_5'] ?></p>
<input type="checkbox" name="checkbox" value="<?php echo $board['bo_7'] ?>" id="wr_7" onclick="calc( this );" /><?php echo number_format($board['bo_7']); // ?>
</li>
</ul>
추가항목 : &nbsp;&nbsp;
<div id="desc"></div>
<p> 합계 : <input type="text" name="result" id="descValue" value="0" /></p>

내용이 복잡하여 이해를 하지 못했습니다.

다만, write.skin.php 에서
<input type="checkbox" name="wr_6" value="5000" id="wr_6" onclick="calc( this );" <?php echo $wr_6 == '5000' ? 'checked' : '' /> 5000
이렇게 체크하고 저장시,
DB 에 wr_6 값이 5000 이 저장되고,
수정시 체크된 것으로 나타납니다.

넵. 신경써주셔서 감사합니다. 게시판관리자안에 여분필드값을 가져와서 한거라 이게 될지 의문이들기도하구요. 코드 초보라 영 헛갈리네요. 좀더 해결책이 있나 테스트 해봐야 겠브니다. 마지막으로 합계값으 추출할 수 있을런지요?

소뒷걸음:

게시판 설정 페이지에서

 상품1 상품2 상품3 가격을

bo_6,7,8 에 지정하고

글쓰기 스킨에서

상품을 선책하게 한다는 것 같군요.

write.skin.php
<input type="checkbox" name="wr_6" value="Y"
 data-val="<?php echo $board['bo_6'];?>"
<?PHP echo $write['wr_6']=='Y' ? 'checked' : ''  />
JavaScript 에서는 data-val 가지고 계산하시고
합계 저장은 어디에 하시는 지 모르겠으나
 write.skin.tail.php.에서 처리하시면 될 듯합니다.

네. 답변 주셔서 감사합니다. 포기 직전이었는데 작은 희망이 생기네요. 말씀대로 bo_6,7 게시판 필드에 값을 가지고와서 계산에 넣었습니다. value값때문에 저장이 안되어 편법을 강구하였구요. 혹시 아아래 내용과 같이 data-val로 계산하라고 하셨는데 초보라서 이해가 잘 안갑니다. 그리고 합계저장도 해야되서요. 일단 해보겠습니다.

<script>
function calc( event )
{
  var result = 0;
  var desc_txt = [];
  var obj;
  // var form_obj = document[event.form.name];
  var form_obj = event.form;
  var form_length = form_obj['checkbox'].length;
  var desc = document.getElementById('desc');
  for ( var i=0; i<form_length; i++ )
  {
    obj = form_obj['checkbox'][i];
    if ( obj.checked == true ) {
      result += parseInt($("#Y").val())
$("#result").val(sum);
            // desc_txt.push(obj.parentNode.querySelector('p').innerHTML);
      desc_txt.push(obj.parentNode.querySelector('p').innerHTML + '('  + obj.Y.replace(/\B(?=(\d{3})+(?!\d))/g, ",") +  ')');
    }
  }
  desc.innerHTML = desc_txt.join(',');
  form_obj['result'].Y=result.toLocaleString();
}
</script>


스크립트를 부분val())로 적용 해도 안되네요. 코드가 틀린듯 합니다.
코드 초보라 어려워요.ㅎ 발코딩.

답변 감사합니다.

--------------
function GetSum() {
      var total = '';
      var firstNum = 0;
      var secondNum = 0;

      firstNum  = Number($('#id1').val());
      secondNum = Number($('#id2').val());
      total = firstNum + secondNum;
      $('#RESULT').val(total);

    }
-------------------------------
알려주시값 적용부분 계산값이 이거 같은데요.
지금 사용하는것과 매칭하기가 좀 힘드네요.
계산후 저장값이 필요한데요. 이걸 어찌해야되나 고민중입니다.

<input id="id1" data-val="100" ... />
<input id="id2" data-val="200" ... />

--------------
function GetSum() {
      var total = '';
      var firstNum = 0;
      var secondNum = 0;

      firstNum  = Number($('#id1').data('val'));
      secondNum = Number($('#id2').data('val'));
...

답변 감사합니다. 다시 정리해서 재질문 등록해 둬야 될듯합니다.
지금 소스가 뒤죽박죽이라서요^^
정리해서 재 질문 등록 해드렸어요.
방법이 있으면 채택 드리겠습니다.

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

회원로그인

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