0

我有一个表格,其中有 X 列标记为 C1、C2、C3..to CX。我还有一个标有“平均”的列和另一个标有“目标”的列。“平均值”列查找列 C1 - CX 中每一行的平均值。用户填写表格时,“平均”列是否可以动态更改?如果是这样,怎么做?

如果这是不可能的,那么在提交带有编辑后的 ​​C1-CX 值的表单时,如何让“平均”列更新其值?

只是寻找有关如何处理平均值的提示。我已经有工作的 C1-CX 列,其中包含保存到 MYSQL 数据库的预定义字段。

4

3 回答 3

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...
});
于 2013-08-07T22:25:48.147 回答
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);
    });
});
于 2013-08-07T22:35:21.737 回答
0

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/

于 2013-08-07T23:08:23.283 回答