단가x수량+배송비 계산
본문
단가x수량+배송비 = 합계가 바로 나오도록 스크립트로 하고 싶은데....
전에 조금알았는데 오래되어 잊어먹었습니다.
분할필드로 저장하고 있습니다. 단가 수량은 글쓰면서 저장되구요,,,수정시 배송비를 기입하면 합계가 나타나게 하려는 것입니다.
<? for($k=0; $k<count($price); $k++){ ?>
단가 <input type="text" name="price[]" value="<?=$price[$k]?>" class="inputgrn-r" onKeyDown='onlyNumDecimalInput();' maxlength="7" size="6">원
수량 <input type="text" name="qty[]" value="<?=$qty[$k]?>" class="inputgrn-r" style="width:50px" onKeyDown='onlyNumber(this);' itemname="수량" maxlength=6 size=6 min="1"/>개
배송비 <input type="text" name="delivery_cost[]" value="<?=$delivery_cost[$k]?>" onKeyDown='onlyNumDecimalInput();' itemname="배송비" maxlength=7 size=5/>
합계 <input type="text" name="total_price[]" value="<?=$total_price[$k]?>" class="inputgrn-r" onKeyDown='onlyNumDecimalInput();' itemname="합계" maxlength=8 size=7 />
<? } ?>
답변 4
<form name="폼이름">
<? for($k=0; $k<count($price); $k++){ ?>
단가 <input type="text" name="price<?=$k?>" value="<?=$price[$k]?>" class="inputgrn-r" onKeyDown='onlyNumDecimalInput();' maxlength="7" size="6">원
수량 <input type="text" name="qty<?=$k?>" value="<?=$qty[$k]?>" class="inputgrn-r" style="width:50px" onKeyDown='onlyNumber(this);' itemname="수량" maxlength=6 size=6 min="1"/>개
배송비 <input type="text" name="delivery_cost<?=$k?>" value="<?=$delivery_cost[$k]?>" onKeyDown='onlyNumDecimalInput();' onKeyUp="cal(formname, <?=$k?>)"; itemname="배송비" maxlength=7 size=5/>
합계 <input type="text" name="total_price<?=$k?>" value="<?=$total_price[$k]?>" class="inputgrn-r" onKeyDown='onlyNumDecimalInput();' itemname="합계" maxlength=8 size=7 />
<? } ?>
</form>
function cal(formname, index){
var f = document.formname;
var price = eval("f.price"+index+".value");
var qyt = eval("f.qty"+index+".value");
var delivery_cost = eval("f.delivery_cost"+index+".value");
var sum = parseInt((price*qyt))+parseInt(delivery_cost);
eval("f.total_price"+index+".value = sum");
}
다시 수정했습니다 ㅋ 배열로 저장되고 불러와질줄 알았는데 테스트 해보니 아니네요
일단 이걸로 하니깐 되긴되는데 이름을 qty[]이런식으로 설정 해야하는 건가요?
그게아니라면 이렇게 하시면 되긴됩니다 ㅋ 배열로 처리하는거는 한번 찾아봐야겠어요
합계 <input type="text" name="total_price[]" value="<?=($price[$k]*$qty[$k])+$delivery_cost[$k]?>" class="inputgrn-r" onKeyDown='onlyNumDecimalInput();' itemname="합계" maxlength=8 size=7 />
그냥 이렇게 바로 계산해버리면 될것 같은데요
<? for($k=0; $k<count($price); $k++){ ?>
단가 <input type="text" name="price[]" value="<?=$price[$k]?>" class="inputgrn-r" onKeyDown='onlyNumDecimalInput();' maxlength="7" size="6">원
수량 <input type="text" name="qty[]" value="<?=$qty[$k]?>" class="inputgrn-r" style="width:50px" onKeyDown='onlyNumber(this);' itemname="수량" maxlength=6 size=6 min="1"/>개
배송비 <input type="text" name="delivery_cost[]" value="<?=$delivery_cost[$k]?>" onKeyDown='onlyNumDecimalInput();' onKeyUp="cal(formname, <?=$k?>)"; itemname="배송비" maxlength=7 size=5/>
합계 <input type="text" name="total_price[]" value="<?=$total_price[$k]?>" class="inputgrn-r" onKeyDown='onlyNumDecimalInput();' itemname="합계" maxlength=8 size=7 />
<? } ?>
function cal(formname, index){
var f = document.formname;
var price = f.price[index].value();
var qyt = f.qyt[index].value();
var delivery_cost = f.delivery_cost[index].value();
f.total_price[index].value = price * qyt + delivery_cost;
}
아 질문을 잘못 이해했습니다, 배송비를 입력시 수정값을 적용하신다는 거죠?
대충 이런방향으로 하면 되지 않을까요 ㅋ
!-->
<form name="폼이름">
<? for($k=0; $k<count($price); $k++){ ?>
단가 <input type="text" id="price[<?=$k?>]" name="price[<?=$k?>]" value="<?=$price[$k]?>" class="inputgrn-r" onKeyDown='onlyNumDecimalInput();' maxlength="7" size="6">원
수량 <input type="text" id="qty[<?=$k?>]" name="qty[<?=$k?>]" value="<?=$qty[$k]?>" class="inputgrn-r" style="width:50px" onKeyDown='onlyNumber(this);' itemname="수량" maxlength=6 size=6 min="1"/>개
배송비 <input type="text" id="delivery_cost[<?=$k?>]" name="delivery_cost[<?=$k?>]" value="<?=$delivery_cost[$k]?>" onKeyDown='onlyNumDecimalInput();' onKeyUp="cal(폼이름, <?=$k?>)"; itemname="배송비" maxlength=7 size=5/>
합계 <input type="text" id="total_price[<?=$k?>]" name="total_price[<?=$k?>]" value="<?=$total_price[$k]?>" class="inputgrn-r" onKeyDown='onlyNumDecimalInput();' itemname="합계" maxlength=8 size=7 />
<? } ?>
</form>
<script>
function cal(폼이름, index){
var f = document.폼이름;
var price = f.price[index].value();
var qyt = f.qyt[index].value();
var delivery_cost = f.delivery_cost[index].value();
f.total_price[index].value = price * qyt + delivery_cost;
}
</script>
아네 여기서 말하는 폼네임은 지정해주셔야합니다. 아마 기존에 form이 있는것 같아서 제가 임의로
formname이라고 했는데
form 지정해놓은 것이 있으면 기존의 것을 쓰시고 지정되어 있지 않다면 위의 코드 처럼<form name="폼이름"></form>을 설정하셔야합니다.
그리고 코드는 대략적인 길만 적었던 거라서 코드 수정해서 다시 올렸습니다
!-->