概括
- 我正在制作一个订购单,它将“项目数量”乘以“单价”,以通过 JavaScript 给出“小计”。
- 订单存储在 MySQL 数据库中并通过 PHP 检索。
- 我想手动输入“单价”,我希望在我输入该数字后会发生乘法。
- 有 10 行项目(一个数组)。
- 所有编写的代码都按预期正确执行。
问题
- 我的 JavaScript 函数只为第一行运行,而不是其他任何行。
- 我想为每一行,每种项目类型运行。
我的代码
JS
function calc(){
baseprice=parseInt(document.getElementById("baseprice").value);
units=parseInt(document.getElementById("units").value);
x=baseprice*units;
document.getElementById("sub").value=x;
}
PHP/SQL
$alter=0;
//previous miscellaneous code
while($rows=mysql_fetch_array($sql))
{
$alter=$alter+1;
//edit
$subCalc="<td><input name='units_".$alter."' id='units_".$alter."' type='hidden' value=".$rows['SUM(pizza_orders.qty)']."><input name='baseprice_".$alter."' id='baseprice_".$alter."' type='text' size='2' onchange='calc(this);'></td><td><input name='sub_".$alter."' id='sub_".$alter."' type='text' size='3'></td></tr>";
//alternates the table row colour by modulus
if ($alter %2 ==0){
echo "<tr><td>".$rows['item_order']."</td>";
echo "<td>".$rows['SUM(pizza_orders.qty)']."</td>".$subCalc;
}else{
echo "<tr class=\"alt\"><td>".$rows['item_order']."</td>";
echo "<td>".$rows['SUM(pizza_orders.qty)']."</td>".$subCalc;
}
}
样本结果/情况
延期
在右下角进行总计,将所有小计字段添加为“onchange”。
subTotal=parseInt(document.getElementById("sub" + el.id.replace('baseprice', '')).value); document.getElementById("grandtotal")= subTotal+parseInt(document.getElementById("grandtotal").value);