2
我想在用戶輸入值時動態地對錶格行進行求和。由於行數可以改變我想用一個PHP循環來實現這一點。我有問題讓環路正常工作。例如,如果有兩個單獨的行相加,只有最後一行將被求和。在PHP循環中表行總和
<script type="text/javascript">
var sumScoreF = function(a) {
var rowtotal = 0;
n = new Array();
for (i = 1; i <= 3; i++) {
if (parseInt(document.getElementById(a + i).value) > 0) {
n[i] = parseInt(document.getElementById(a + i).value);
rowtotal += n[i];
}
}
document.getElementById(a + 'total').value = rowtotal;
};
</script>
以下是單行和的例子。在輸入值時總列繼續相加。這是一個很好的效果,但沒有必要。
<table>
<tr>
<td>col1</td>
<td>col2</td>
<td>col3</td>
<td>total</td>
</tr>
<tr>
<td>
<input name="p1g1" id="p1g1" type="text" value="" onChange="sumScoreF('p1g')" />
</td>
<td>
<input name="p1g2" id="p1g2" type="text" value="" onChange="sumScoreF('p1g')" />
</td>
<td>
<input name="p1g3" id="p1g3" type="text" value="" onChange="sumScoreF('p1g')" />
</td>
<td>
<input name="p1gtotal" id="p1gtotal" type="text" value="" />
</td>
</tr>
</table>
這裏是我嘗試循環使用PHP和JavaScript的額外的行。第一行不會總和,但第二行會。我認爲問題是與JavaScript變量「m」在它直接到最後一行,但我不知道如何解決它。
<table>
<tr>
<td>col1</td>
<td>col2</td>
<td>col3</td>
<td>total</td>
</tr>
<?php for($j=1;$j<=3;$j++) { ?>
<script type="text/javascript">
var k = <?php echo json_encode($j); ?>;
var m = 'p'+k+'g';
</script>
<tr>
<td>
<input name="<?php echo 'p'.$j.'g1'; ?>" id="<?php echo 'p'.$j.'g1'; ?>" type="text" onChange="sumScoreF('m')" />
</td>
<td>
<input name="<?php echo 'p'.$j.'g2'; ?>" id="<?php echo 'p'.$j.'g2'; ?>" type="text" onChange="sumScoreF('m')" />
</td>
<td>
<input name="<?php echo 'p'.$j.'g3'; ?>" id="<?php echo 'p'.$j.'g3'; ?>" type="text" onChange="sumScoreF('m')" />
</td>
<td>
<input name="<?php echo 'p'.$j.'gtotal'; ?>" id="<?php echo 'p'.$j.'gtotal'; ?>" type="text" />
</td>
</tr>
<?php } ?>
任何幫助是極大的讚賞。謝謝。
這是做一個非常可怕的方式,但每次要覆蓋'M'變量,你在PHP中循環,嘗試將'$ j'附加到該變量的所有實例。否則,你的DOM綁定'onChange'調用不會將你想要傳遞到'sumScore'函數的正確變量作爲目標 –
如果你想在用戶輸入中添加'
謝謝@scrowler。覆蓋循環的每個迭代的m變量是有意的。當j是1時,m是p1g,p1gtotal應該(我認爲!)顯示第1行的總和。當我在第1行第1列中輸入一個值時,p2gtotal立即在第2行列總數中顯示一個零,第1行列總計不會當我在第2行輸入一個值時,第2行開始正確合計,所以不會顯示任何內容。它看起來像m變量直接到p2g並等待p2g值,並且p1g以某種方式被否定。我檢查了m在循環中正確改變。 – MikeH
回答
使用PHP來呼應的onChange內循環變量javascript函數調用:
來源
2013-12-29 01:19:29 MikeH
..然後單擊複選標記以將此答案標記爲已接受。 – Daedalus
相關問題