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

링크값을 눌러보시면 이해가 빠르지 않을까 하네요.
"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;" />
답변에 대한 댓글 6개
<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 ?>
<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();
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 7개
<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>
wr_6, wr_7, wr_8 이값이 된거 같구요.
obj.getAttribute('value'));
대신에( 들어갈 자리에)
$(obj).data( 'price')
를 사용해 보세요.
if $view['wr_6']=='Y')
$wr_6_val=5000; else $wr_6_val=0;
이런 식으로 합계를 구하시면 됩니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
말씀대로 적용을 해보았지만 계산값에는 적용이 안되고 저장도 안되고 있어서 고민해보니 스크립트에서 값을 계산하는 부분에 알려주신 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값도 저장에 영향이 있나요?