我有一个X列数量的表格,标记为C1,C2,C3..to CX。我还有一个标有“Average”的列,另一个标有“Target”。 “Average”列找到列C1-CX中每行的平均值。当用户填写表单时,“平均”列是否可以动态更改?如果是这样,怎么样?
如果无法做到这一点,那么在提交带有编辑过的C1-CX值的表单后,如何让“平均”列更新其值?
只是寻找有关如何处理平均值的提示。我已经使用了预定义字段的C1-CX列,这些字段保存到MYSQL数据库。
答案 0 :(得分:3)
添加一个事件处理程序,当任何CX表单字段值发生更改时触发(例如,用户更改其中的值),然后重新计算平均值并将其显示在平均列中。
假设您的CX表格是输入,可能类似于以下内容:
document.getElementById("C1").addEventListener("input", function(){
// Any time the user changes a value in form 'C1',
// this function will be called so you can re-calculate
// a new average and stuff...
});
答案 1 :(得分:0)
给所有人一个特定的类(例如“cx”),然后使用JavaScript和jQuery: http://jsfiddle.net/yw3Hy/4/
$(document).ready(function() {
$(".cx").change(function() {
var count = 0;
var sum = 0;
$(".cx").each(function() {
count++
sum = parseFloat(sum) + parseFloat($(this).val());
});
var avg = sum/count;
alert(avg);
});
});
答案 2 :(得分:0)
使用mysql触发器在记录更新时自动更新Average
字段。
在您的数据库上运行此触发器(例如,对于3 CX
字段):
DELIMITER $$
CREATE TRIGGER `trigger_name` BEFORE UPDATE ON `table_name`
FOR EACH ROW BEGIN
SET NEW.Average = (NEW.C1 + NEW.C2 + NEW.C3) / 3;
END;
$$
DELIMITER ;
此处还介绍了mysql触发器可能有用: http://net.tutsplus.com/tutorials/databases/introduction-to-mysql-triggers/