我有一个表格,其中有 X 列标记为 C1、C2、C3..to CX。我还有一个标有“平均”的列和另一个标有“目标”的列。“平均值”列查找列 C1 - CX 中每一行的平均值。用户填写表格时,“平均”列是否可以动态更改?如果是这样,怎么做?
如果这是不可能的,那么在提交带有编辑后的 C1-CX 值的表单时,如何让“平均”列更新其值?
只是寻找有关如何处理平均值的提示。我已经有工作的 C1-CX 列,其中包含保存到 MYSQL 数据库的预定义字段。
添加一个事件处理程序,当任何 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...
});
给他们一个特定的类(例如“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);
});
});
Average
当您的记录更新时,使用 mysql 触发器自动更新您的字段。
在您的数据库上运行此触发器(例如,对于 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/