我想根据循环或相同字段名称中的其他字段输入来更改总金额的值。
这是我的表格。
<?php
$sudentname = $_POST['sudentname'];
$admissionnmbr = $_POST['admissionnmbr'];
$amount = $_POST['amount'];
?>
<form method="POST" action="/" >
<table class="paymentConfirmTblMutiSt">
<tbody>
<thead>
<tr>
<th>Admission No</th>
<th>Amount</th>
</tr>
</thead>
<?php
foreach($sudentname as $key => $v){
$totalAmount +=$amount[$key]; // to sum all of amount
?>
<tr>
<td><input type="text" name="sudentname[]" value="<?= $sudentname[$key] ?>"></td>
<td><input type="text" name="admissionnmbr[]" value="<?= $admissionnmbr[$key] ?>"></td>
<td><input type="text" name="amount[]" class="inputChangeVal" value="<?= number_format((float)$amount[$key], 2, '.', ',') ?>"></td>
</tr>
<?php } ?>
</tbody>
</table>
Total payable : <input type="text" name="totalAmount" value="<?=number_format((float)$totalAmount, 2, '.', ','); ?>" class="totalAmount"/>
</form>
所以这显示了学生的姓名和入学人数的数量和详细信息,这些数字和入学人数在之前的表格中填写。 如果用户为两名学生付费,这将是这样的:http://prnt.sc/eh0ygd(我没有显示上面代码中的所有字段)
现在,如果用户想要更改学生数量,他可以点击字段并更改它,因为这些是文本输入。
我的问题是,当用户更新“amount[]
”时,应该 calculted(SUM),并且应该在“TotalAmount
”中显示
由于这些字段的值/名称是循环或同名,我很困惑如何做到这一点。
代码下的实时更改工作正常。
<script>
jQuery(document).ready(function()
{
function updateTotal()
{
var price = parseFloat(jQuery(".inputChangeVal").val());
var total = (price + 1) * 1.05; // I want to change this line to SUM the Amount[]
var total = total.toFixed(2);
jQuery(".totalAmount").val(total);
}
jQuery(document).on("change, keyup", ".inputChangeVal", updateTotal);
});
</script>
我只是用另一个计算来检查var total。
当用户在'inputChangeVal'/ in amount[]
我想要的是与amount[]
进行对比,并在用户更新'totalAmount'
字段时在amount[]
中显示
我如何为此更新jQuery?
答案 0 :(得分:0)
在表示Amount
的输入字段上使用jQuery迭代循环E.g:
Sum = 0;
jQuery("input.inputChangeVal").each(function( index, value ) {
Sum += parseInt(jQuery(this).val()); //index represents the number of input (array elements 0, 1, 2, etc.)
});
jQuery(".totalAmount").val(Sum);
Sum现在表示Amount输入字段中值的总和
答案 1 :(得分:0)
可能你需要这样的东西:
<script>
jQuery(document).ready(function()
{
function updateTotal()
{
var price = 0;
jQuery(".inputChangeVal").each(function(){
var t = parseFloat( $(this).val() );
price = price + t;
});
var total = total.toFixed(2);
jQuery(".totalAmount").val(total);
}
jQuery(document).on("change, keyup", ".inputChangeVal", updateTotal);
});
</script>
编辑:从parseFloat中删除了行和基数参数...