Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可以删除tr的脚本也可以从总数中减去_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 可以删除tr的脚本也可以从总数中减去

Javascript 可以删除tr的脚本也可以从总数中减去,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在使用一个表单,它添加了劳动力和它的价格,同时在下面的同一页上显示分配给它的劳动力 我想要的是: 当用户单击delete时,它将删除table.tr并从table end中的总值中减去人工成本 while($row2 = $result2->fetch_assoc()){ $serial=$serial+1; $Total=$row2["cost"]+$Total;

我正在使用一个表单,它添加了劳动力和它的价格,同时在下面的同一页上显示分配给它的劳动力

我想要的是: 当用户单击delete时,它将删除table.tr并从table end中的总值中减去人工成本

 while($row2 = $result2->fetch_assoc()){    
$serial=$serial+1;                  
$Total=$row2["cost"]+$Total;                                       
                       echo  "<tr >
                          <th scope='row'>",$serial,"</th>
                          <td>",$row2["Labor"],"</td>
                          <td>",$row2["type"],"</td>
                          <td id='cost'>",$row2["cost"],"</td>
                          <td><span class='action'><a href='#' id='",$row2["Labor_id"],"'  class='delete' title='Delete'>Delete</a></span></td>
                        </tr>";

 }
                            echo "<tr><td></td><td></td>
                          <th align='right'>Total</th>
                          <th id='total'>",$Total,"</th>
                        </tr>";

 } 

在delete_labour.php的末尾,您可以回显新的成本,然后在success()方法中获取它。

1)id应该是唯一的,因此将其更改为class name
,$row2[“cost”],“

2) 删除tr后,使用每个函数再次求和总数

 var total=0;
$('.cast').each(function(){ total=total+parseInt($(this).text().trim()); });
$('#total').text(total);

首先,将属性从
“$row2[“cost”]”更改为
“$row2[“cost”]”

我很惊讶逗号是如何代替点的

您可以在成功时从delete_labor.php获取总数,并可以使用jquery将其放入总数框中

另一种方法是,计算HTML类“cost”的总成本,并将其更新为total框

编辑

function get_total(){
        var main_total = 0;
        if($('.cost').length > 0){
           $('.cost').each(function(i){
                main_total += parseInt( $(this).html())
           }); 
        }
        $('#total').html(main_total);
    }
并在
$(this.closest(“tr”).remove()之后调用此函数
因此,您的代码将是:

$(this).closest("tr").remove();
get_total();

删除行后,应在delete_labour.php中再次求和total,并返回以响应在total div中再次显示该行。

请尝试下面的代码。只需更改修补程序即可

   <td id='cost'>",$row2["cost"],"<input type='hidden' class='cost' value='".$row2["cost"]."'/></td> 

delete_labor.php工作正常,它可以删除行表单数据库。您对所有成本单元使用相同的ID。您可以通过两种方式完成此操作。1) 每删除一次,重新校准总数。2) 对于delete_labour.php,在delete之后获取总计从php返回总计,并在success函数中访问它,然后使用id$('#total').text(结果)像这样附加它@sasi kanth这就是我想在删除后重新计算的内容,但是怎么做呢?在第二个选项中,我必须运行另一个我不喜欢的查询。谢谢您的回复。你能告诉我如何编写这个“计算HTML类'cost'的总成本并将其更新为total box”的代码吗。。等几分钟。。我将在这里使用脚本进行更新。成功后,首先必须从html中删除现有的TR,然后再进行计算。在这段代码中,total将保持不变,因为TR还没有被删除。哦,它是一个魅力。谢谢大家,非常特别地感谢Jyothi,很高兴能帮助你们@AshiPashi
$.ajax({
            type: "POST",
            url: "delete_labor.php",
            data: info,
            success: function () {
  var sum = 0;
  $('.cost').each(function(){
  sum += parseFloat($(this).text());  // Or this.innerHTML, this.innerText
});
$('#total').text(sum);
}
        });