php - JQuery 表帖子 用 PHP 计算总和

标签 php jquery ajax

我有一个表,其中包含输入文本,用于计算 JQuery 中的行总和和列总和。

是否可以将 AJAX post 中的表格发送到 PHP 并在那里进行行和列的计算?

这是我的 table :

<table id="sum_table">
    <tr>
        <td><input value="0" class="sum1" /></td>
        <td><input value="0" class="sum2"/></td>
        <td><input value="0" class="sum3"/></td>
        <td class="total">0</td>
    </tr>
    <tr>
        <td><input value="0" class="sum1"/></td>
        <td><input value="0" class="sum2"/></td>
        <td><input value="0" class="sum3"/></td>
        <td class="total">0</td>
    </tr>
    <tr>
        <td><input value="0" class="sum1"/></td>
        <td><input value="0" class="sum2"/></td>
        <td><input value="0" class="sum3"/></td>
        <td class="total">0</td>
    </tr>

    <tr class ="totalCol">
        <td>0</td>
        <td>0</td>
        <td>0</td>
    </tr>

</table>
<button id="tabla">+</button>
<button id="moes">Hide/Show</button>

这就是我对列求和的方式:

//Mostramos y ocultamos la tabla
    $("#moes").click(function(){
         $("table").toggle();
   });

    //Sumamos las columnas
    $(document).on('keyup change','#sum_table tr:not(.totalCol) input:text',function() {
    var $table = $(this).closest('table');
    var total = 0;
    var thisNumber = $(this).attr('class').match(/(\d+)/)[1];


    $table.find('tr:not(.totalCol) .sum'+thisNumber).each(function() {
        total += parseInt(this.value);
    });

FULL CODE HERE

提前谢谢您:)

最佳答案

是的,确实如此。

$(document).ready(function() {

    $('#tabla').click(function() {

       var col1 = [];
       var col2 = [];
       var col3 = [];

       // collect all data from table col1
       $.each($('table td input.sum1'), function(k, v){
           col1.push($(v).val());
       });

       // collect all data from table col2
       $.each($('table td input.sum2'), function(k, v){
           col2.push($(v).val());
       });

       // collect all data from table col3
       $.each($('table td input.sum3'), function(k, v){
           col3.push($(v).val());
       });

       // send data to server
       $.ajax({
           url: 'calc.php',
           type: 'post',
           data: {'col1': col1, 'col2': col2, 'col3': col3,},
           dataType: 'json',
           success: function(data){

               // insert your server-calculated data to dom
               $('.totalCol td:nth-child(1)').text(data.SumCol1);
               $('.totalCol td:nth-child(2)').text(data.SumCol2);
               $('.totalCol td:nth-child(3)').text(data.SumCol3);
           }
       }); 
   });
});

您可以总结您在服务器上的帖子,例如calc.php:

$SumCol1 = _sumUp($_POST['col1']);
$SumCol2 = _sumUp($_POST['col2']);
$SumCol3 = _sumUp($_POST['col3']);

    echo json_encode(array(
        "SumCol1" => $SumCol1, 
        "SumCol2" => $SumCol2, 
        "SumCol3" => $SumCol3
            ));

function _sumUp($data)
{
    $sum = 0;

    foreach($data as $k => $v)
    {
        $sum += $v;
    }

    return $sum;
}

注意:未经测试。只有基本结构。

关于php - JQuery 表帖子 用 PHP 计算总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23287563/

相关文章:

javascript - 如何在我的第二个 tr 中获得 8 列?

javascript - 使用 Ajax 和 Jquery 按最大到最小的数字对数组进行排序

javascript - 更新内容,更改 url 而不加载页面 window.history.pushState

javascript - 如何获取我网站中的国家/地区列表

php - 注册Php错误不显示

jquery - 从 json 文件中获取随机单词及其参数

javascript - XMLHttpRequest 就绪状态停止于 1

PHP:页面未重定向回登录页面

php - 按名称获取元素 - HTML DOM 短语

javascript - 报价未出现在网页上