그누보드 여분필드 실시간 합계요...ㅠㅠㅠ(php 내부의 jquery)
본문
여분필드에 이름하고 값을 넣으면 php로 체크박스를 자동 생성해주는 만두야님의 스킨을 고쳤습니다.
(해당 스킨 : https://sir.kr/g5_skin/8608 )
상품 이름하고 값이 필요한 터라, 여분필드 값에 넣은 배열을 상품이름|값|상품이름|값... 을 배열로 넘겨서 해결했습니다.
상품 갯수도 많고, 자주 바뀌어서 그누보드 여분필드로 해결할 수 있는 건 배열밖에 없더라고요..
상품 선택했을 때 그 갯수는 해당 필드에서 +10한 필드를 추가로 만들어서(예: wr_1 필드의 각각 상품 구매 개수 -> wr_11에 배열로 저장) 저장하는 것까진 처리했습니다.
상품 각각은 input checkbox로 만들고, 개수는 number로 했습니다.
이제 실시간 합계를 구할 필드를 만들고 싶은데ㅠㅠ 제이쿼리 까막눈이다보니 도저히 해결법이 보이지 않아서 며칠 끙끙대다 질문글 올립니다.
여기에서 어떻게 해결해야 답이 나올까요? 제가 너무 복잡하게 생각하는 건 아닌지요..ㅠㅠ
// 총합산
// write.skin.php에선 <?=Calc?> 이렇게 출력한다.
function Calc() {
//board write write_table 변수 가져오기
GLOBAL $board, $write, $write_table;
// 열개의 기본 여분필드의 상품이름, 값 array로 구함. calc에서 쓰는 건 fieldPrice
for ($i=0 ; $i < 11 ; $i++) {
${"field".$i} = @explode("|",$board["bo_".$i]);
${"fieldValue".$i} = array();
${"fieldPrice".$i} = array();
foreach (${"field".$i} as $k => $v) {
if ($k % 2 == 0) {
${"fieldValue".$i}[] = $v;
}
if ($k % 2 == 1) {
${"fieldPrice".$i}[] = $v;
}
}
}
//실시간 합계 시작
$sum .="
<script>
//calc 클래스 가진 checkbox 변수로 선택 (상품 선택)
var childrens = $('div.calc').children(input[type='checkbox']);
// checkbox 체인지되면 이 펑션 실행
childrens.on('propertychange change keyup paste input', function(){
// input number에서 가장 가까운 checkbox가 체크되었을 때 (상품 선택시) 실행
if ($('input[type=number]').closest('input:checkbox[name*='wr_']').is(':checked') == true;) {
// input number 값(상품 개수)이 변경되면 펑션 실행
$('input[type=number]').bind('propertychange change keyup paste input', function() {
// 전체 합계를 돌려주는 sum 변수 선언
var sum = 0;
// input number 각각에 해당 함수 실행
$('input[type=number]').each(function() {
// 여기에 뭔가를 넣어서 해결해보고 싶은데,
// for문으로 넣자니 input의 value는 구하겠는데
// PHP에서 해당 fieldPrice의 변수를 어떻게 구해야할지 모르겠습니다...ㅠㅠㅠ
});
});
}
});
</script>
<input type='text' name='calcAll' value='<?php echo $write['calcAll'] ?>' id='calcAll'>
// 새로 생성한 calcAll 여분필드로 값 출력, 저장
";
return $sum;
}
어떤 방법이 있을까요...?
!-->답변 1
<input type="text" class="aaaa" vlaue="">
<input type="text" class="aaaa" vlaue="">
<input type="text" class="aaaa" vlaue="">
<input type="text" class="aaaa" vlaue="">
<input type="text" class="aaaa" vlaue="">
<script>
var sum=0
$(
'.aaaa'
).each(
function
(){
sum=sum+$(this).val(); //브레이크 포인트 걸어서 한번 살펴보세요
}
);
alert(sum);
</script>
number 타잎 전페를 검색하면 나중에 다른 넘버 터잎까지들어갑니다
가상의 클라스를 넣어서 처리하는게 좋을듯하네요