value값을 이걸로 $write['wr_1'] 저장 방법이 있나요?

value값을 이걸로 $write['wr_1'] 저장 방법이 있나요?

QA

value값을 이걸로 $write['wr_1'] 저장 방법이 있나요?

본문

내용일 복잡해서 재질문 합니다.

 

질문 핵심은 계산은 정상적으로 작동하고 있습니다.

다만 게시판에 제목, 내용, 그리고 " 뷰페이지에서 계산된 값" 을 출력 저장되게 하고자 합니다.

bo_6값 체크 하고 bo_7값 체크하면 추가항목에 선택한 값이 나오며

합계가 나옵니다.

 

이것을 게시판에 저장하려 하는데 저장할 수 있는 방법이 있을까 합니다.

 

 

계산된 값, 뷰페이지 -> bo_6값 : <?php echo $view['wr_6']; ?> ,  bo_7값 : <?php echo $view['wr_7']; ?>, 

추가항목 체크 선택 값 : <?php echo $view['wr_8']; ?>

 합계 : <?php echo $view['wr_9']; ?>

 

-------> 적용되어 있는 부분 -------> 

 

글작성시 여분필드 bo_6값(6,000원) , bo_7(7,000원)  : 

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

 

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

 

추가항목 체크시 선택값 : 

<span id="desc" style="font-weight: bold; font-size: 14px; border: none; background:#FFFFFF;">0</span>

 

<input type="text" name="result" id="desc" value="0" maxlength="10" size=10 style="font-weight: bold; font-size: 20px; border: none; background:#FFFFFF;" />

합계 : 15,000

 

스크립 부분 ---->

 

<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>
        
-----> 계산 출력 값

 

1893543541_1688629590.1204.png

 

 

링크값을 눌러보시면 이해가 빠르지 않을까 하네요.

"value" 요거를 우회하거나 이값을 다른값으로 하면 value=<?php echo $write['wr_7']; ?>로 하면 저장되리라 생각이 듭니다.

 

 

이 질문에 댓글 쓰기 :

답변 2

input 태그의 name 값이 중요합니다.

write.skin.php 에서 input 의 name 값이 wr_1 이면.. DB 테이블의 wr_1 칼럼에 value 값이 저장됩니다.

name 값을 각각 wr_6, 7, 8로 설정해주면 됩니다.

뷰페이지에서는 $view['wr_6'], $view['wr_7'], $view['wr_8']
쓰기 페이지에서는 $wr_6, $wr_7, $wr_8 로 불러올 수 있습니다.

 

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

 

 

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

 


<input type="text" name="result" id="desc" value="0" maxlength="10" size=10 style="font-weight: bold; font-size: 20px; border: none; background:#FFFFFF;" />
->
<input type="text" name="wr_8" id="desc" value="<?php echo $wr_8 ? $wr_8 : '0' ?>" maxlength="10" size=10 style="font-weight: bold; font-size: 20px; border: none; background:#FFFFFF;" />

아. 마르스컴퍼니 님 답변 감사합니다. 말씀데로 저장하는 방법은 숙지가 되었습니다.
말씀대로 적용을 해보았지만 계산값에는 적용이 안되고 저장도 안되고 있어서 고민해보니 스크립트에서 값을 계산하는 부분에 알려주신 name으로 계산이 되느 듯 하구요.
스크립에서 name="checkbox" 이렇게 되어서 계산이 안되어서
<input type="checkbox" name="wr_6" value="<?php echo $wr_6 ? $wr_6 : $board['bo_6'] ?>" id="checkbox" onclick="calc( this );" /> 이렇게 네임 checkbox을 id로 바꾸니 계산은 잘되네요.
그런데 저장은 안됩니다.
<span value="<?php echo $write['wr_8']; ?>" id="desc" style="font-weight: bold; font-size: 14px; border: none; background:#FFFFFF;">0</span>
추가항목도 이렇게 했지만 저장은 안되네요. id값도 저장에 영향이 있나요?

id값은 자바스크립트에서만 사용되고, 저장에 영향은 없습니다.
<span value="<?php echo $write['wr_8']; ?>" id="desc" style="font-weight: bold; font-size: 14px; border: none; background:#FFFFFF;">0</span>
=>
<input type="text" name='wr_8" value="<?php echo $wr_8 ?>">
or
<input type="hidden" name='wr_8" value="<?php echo $wr_8 ?>">
(form 안의 input, select 태그만 저장이 됩니다. span 태그는 보여주는 역할만 합니다.)

* write.skin.php
<input type="text" name="wr_2" value="사과">
<input type="checkbox" name="wr_3" value="배">

* view.skin.php
<?php echo $view['wr_2'] ?>
<?php echo $veiw['wr_3'] ?>

* write.skin.php
<?php echo $wr_2 ?>
<?php echo $wr_3 ?>

네. 감사합니다. 1가지는 해결되었습니다.

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

form사이에 없어서 저장이 안되었습니다. 이부분은 form사이에 넣어서 해결 되었습니다.
감사합니다.

미해결 부분은
<input type="text" name="wr_8" id="desc" value="<?php echo $wr_8 ? $wr_8 : '0' ?>" maxlength="10" size=10 style="font-weight: bold; font-size: 20px; border: none; background:#FFFFFF;" />  <---- 요 부분인데요. 이것은 wr_6과 wr_7의 선택하면 장바구니처럼 담기는 형태인에요. 이걸 뽑아내려면 input에서는 안되더라구요. 그래서 편법으로

<div id="desc" type="text" style="font-weight: bold; font-size: 14px; border: none; background:#FFFFFF;">
<input type="text" id="desc" name="wr_8" value="<?php echo $write['wr_8']; ?>"> 0</input>
  </div>

이렇게 해보니 출력은 잘됩니다..
문제는 저장하려고 일부러<div><input> 0 </input></div> 을 줬습니다.
출련은 잘되는데 wr_8저장이 안되네요. 합계도 저장이 안되구요.

다만 계산식이 안들어가는 wr_6과 wr_7만 저장이 됩니다.
아무래도 계산이 붙어 있는 "wr_id" 값은 저장이 안되는듯하구요.
검색해서 보니 -> f.wr_subject.value=f.wr_subject.value + "글입니다.";
이게 있더라구요. 요게 wr_6 + wr_7 으로 보여집니다.
이걸 적용해서 하면 될듯합니다.
적용 방법을 혹시 아시는지요??

우선 안되더라고.. 매번 도와 주셔서 채택드립니다.

계산식이 들어가고 안들어가고는 상관이 없습니다.

1.
<input type="text" name="result" id="desc"
=>
<input type="text" name="wr_8" id="desc"

2.
form_obj['result'].value=result.toLocaleString();
=>
form_obj['wr_8'].value = result.toLocaleString();

<input 에서

 value 와 checked 를 하나로 하시려는  것이 문제를 복잡하게 만드는 것 같군요.

write.skin.php


<ul>
<li><p>  상품20</p>
<input type="checkbox" name="wr_6" value="Y" data-price="6000 " id="checkbox6"
<?PHP echo $write['wr_6']=='Y' ? 'checked' : ''; ?>
onclick="calc( this );" />6,000</li>

<li><p>  상품2  </p>
<input type="checkbox" name="wr_7" value="Y" data-price="7000 " id="checkbox7"
<?PHP echo $write['wr_7']=='Y' ? 'checked' : ''; ?>
onclick="calc( this );" />7,000</li>
<li>
</ul>


<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'));
      result += parseInt( $(obj).data( 'price') );

            // 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>

엑스엠엘 님. 답변감사합니다. 매번 신경써주셔서 감사합니다. 요것들때문에 몇일 해매네요. 알려주신 대로 한번 다시 해보겠습니다. 하다보니 뭔가 조금씩 배워가는 느낌이드네요.ㅎㅎ

네. 알여주신데로 해도 합계가 안되고 뷰페이지에서 출력값이 동일하게  Y ,Y,YY 이렇게 나오느데요. 이값이 합계에서 계산이 안되고 -> 출력항목 Y / 합계  Y 이렇게 나와요. 신경써 주셔서 감사합니다.

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

회원로그인

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