我正在做一个从数据库中提取的货币表。因此,每种货币都会在while循环中创建,用户必须输入它们的值并在onkeyup上计算它们。问题是,我创建的基于货币数据计算每个td的功能非常有效。转换率仅适用于最后一个TD
这是我的代码,
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">MASUKKAN SETORAN UNTUK = <b><?php echo $sr; ?></b> ~ <?php echo $flightnum; ?></h4>
</div>
<div class="modal-body">
<table class="table table-striped" id="paymentTable">
<thead>
<th>NO</th>
<th>MATA UANG</th>
<th>RATE</th>
<th>SETORAN</th>
<th>TOTAL IDR</th>
</thead>
<?php
$i = 1;
while ($row = $result->fetch_array()) {
echo "<tr>";
echo "<td>$row[curr_id]</td>";
echo "<td>$row[curr_code] - $row[curr_desc]</td>";
echo "<td>$row[conv_rate]</td>";
echo "<td><input type='number' onkeyup='processCurr($i);' id='inputCurr$i'/></td>";
echo "<td><label id='calculatedCurr$i'></label></td>";
echo "</tr>";
$i++;
}
?>
</table>
</div>
</div>
和javascript函数,
<script>
function processCurr(param){
var inputcurr= $('#inputCurr'+param).val();
$('#paymentTable tr').each(function() {
var convRate = $(this).find("td").eq(2).html();
$('#calculatedCurr'+param).html(inputcurr * convRate);
});
}
</script>
因此每个TD的convRate都是相同的,我不想要。每一行都应该从数据库中提取自己的convRate并调用它的函数来计算IDR中使用onkeyup的总数。
请帮帮我,..
答案 0 :(得分:0)
您的代码存在问题
$('#calculatedCurr'+ param).html(inputcurr * convRate);
这里convRate的最终值将是与inputcurr相乘的最后一个表行值,以给出结果。在每次迭代时,$('#calculatedCurr'+ param).html(inputcurr * convRate)值被覆盖。
我假设您想要的是输出为总IDR = RATE * SETORAN。您的代码可以进行优化以获得答案。您还应该分配一些唯一的ID值来获取您的convRate。优化的解决方案如下所示。< / p>
PHP代码
while ($row = $result->fetch_array()) {
echo "<tr>";
echo "<td>$row[curr_id]</td>";
echo "<td>$row[curr_code] - $row[curr_desc]</td>";
echo "<td><span id='convRate".$i."'>$row[conv_rate]</span></td>";
echo "<td><input type='number' onkeyup='processCurr(".$i.");' id='inputCurr".$i."'/></td>";
echo "<td><label id='calculatedCurr".$i."'></label></td>";
echo "</tr>";
$i++;
}
Javascript代码
<script>
function processCurr(param){
var inputcurr= $('#inputCurr'+param).val();
var convRate=$('#convRate'+param).val();
$('#calculatedCurr'+param).html(inputcurr * convRate);
}
</script>