Php 添加多个下拉列表的总和

Php 添加多个下拉列表的总和,php,javascript,jquery,html,Php,Javascript,Jquery,Html,我正在尝试添加下拉列表值的总和,以在底部给出一个总值 这是我的javascript: <script src="js/jquery-1.9.1.min.js"></script> <script type="text/javascript"> $("#overtimehours").change(function() { var total = 0; $.each($(".overtimehours") ,function()

我正在尝试添加下拉列表值的总和,以在底部给出一个总值

这是我的javascript:

<script src="js/jquery-1.9.1.min.js"></script>
        <script type="text/javascript">
$("#overtimehours").change(function() {
    var total = 0;
    $.each($(".overtimehours") ,function() {
        total += parseInt($(this).val());
    });
    $("#sum").val(total)
});
    </script>

$(“#超时小时”)。更改(函数(){
var合计=0;
$.each($(“.overtimehours”),函数(){
total+=parseInt($(this.val());
});
美元(“#总和”).val(总计)
});
这是我的php:

print "<td><div align=\"center\"><select name=\"overtimehours["; echo $transnum; print "]\"><option value=\"$ot_hours\">$ot_hours</option>"; overtimehours_list(); 
print "</select></div></td>\n";

print "<td><div align=\"center\"><b><input id=\"sum\" type=\"text\"/></b></td></tr>\n"; //add up OT hrs
打印“$ot_小时”;超时时间列表();
打印“\n”;
打印“\n”//加总工时

已解决::以下是JSFIDLE演示修复程序:

您将
超时时间
同时作为id和类名,但您的输入既没有id也没有类名。我建议在要计算的每个输入中添加一个名为
overtimehours
的类,并将选择器更改为
$('.overtimehours')
,而不是
$('#overtimehours')
将类
overtimeshours
添加到您的select声明中

print "<td><div align=\"center\"><select class=\"overtimehours\" name=\"overtimehours["; echo $transnum; print "]\"><option value=\"$ot_hours\">$ot_hours</option>"; overtimehours_list();

更多关于

保持您的PHP不变并执行此操作

$(document).on('change', 'select[name="overtimehours"]', function(){
    var total = 0;
    $('select[name="overtimehours"]').each(function() {
        total += parseInt($(this).val());
    });
    $('#sum').val(total)
});

编辑:

PHP:


演示:

在问题中添加html的输出..而不是创建它的php。或者创建一个有问题的JSFIDLE。仍然不工作。。。是因为我的超时时间是数组吗。。我尝试将其更改为:'select[name=“overtimehours[$transnum]”,但仍然不起作用。。没有错误。这令人沮丧。。这样一个简单的函数,我需要什么都没有工作,你能删除你的php文件中的这个吗?[“echo$transnum;print”]不,我每行都需要这个。。我做了一个jsfiddle。。。这里是:所有ID都必须是唯一的。我已经编辑了我的帖子。请参考它。
$(document).on('change', 'select[name="overtimehours"]', function(){
    var total = 0;
    $('select[name="overtimehours"]').each(function() {
        total += parseInt($(this).val());
    });
    $('#sum').val(total)
});
print "<td><div align=\"center\"><select class=\"overtimehours\" name=\"overtimehours["; echo $transnum; print "]\"><option value=\"$ot_hours\">$ot_hours</option>"; overtimehours_list(); 
print "</select></div></td>\n";

print "<td><div align=\"center\"><b><input id=\"sum\" type=\"text\"/></b></td></tr>\n"; //add up OT hrs
$(document).on('change', '.overtimehours', function(){
    var total = 0;
    $('.overtimehours').each(function() {
        total += parseInt($(this).val());
    });
    $('#sum').val(total)
});