duanqian9503 2017-05-08 03:46
浏览 89
已采纳

如何根据ajax成功返回的数据追加一行?

I have an ajax that retrieved data from database and append it to html table. But, I'd like to add a custom row in a specific condition. This is my ajax success:

success  : function(response)
            {
                var tableData,t1,t2,t3;                 
                var count       = 0;

                $.each(response.result_pakai, function(index, rows_pakai){

                    //MONTHS
                    var arr_bln = ["", "Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"];

                    t1  = "<tr><td>"+arr_bln[rows_pakai.month]+"</td>";
                    t2  =     "<td align='center' class='col_thn'>"+rows_pakai.years+"</td>";
                    t3  =     "<td align='right' class='col_data'>xxx</td></tr>";

                    tableData += t1+t2+t3;

                    $('#t_pemakaian tbody tr').remove();
                    $('#t_pemakaian tbody').append(tableData);

                    count+=1;
                });
            }

So, I'd like the custom row for each year. This is my current html table result.

Month       year   data
Januari     2016     10
Februari    2016     75
Desember    2016     95
Januari     2017     47
April       2017     68

This is what I expected:

Month       year   data
Januari     2016     10
Februari    2016     75
Desember    2016     95
     Total          180

Januari     2017     47
April       2017     68
     Total          115

Where in my AJAX the following script should be inserted?

<tr><td colspan='2' class='tr_total'>Total</td><td>&nbsp;</td></tr>
  • 写回答

2条回答 默认 最新

  • duanqiao8925 2017-05-08 04:16
    关注

    You can use a simple variable to keep track of the current/past year value, and create/display the subtotal row, ie. currentYear. Do this at the start of you loop, so that you can check the current row year vs the last row year.

    success  : function(response)
            {
                var tableData,t1,t2,t3;                 
                var count       = 0;
                var currentYear = 0;
                var subTotal = 0;
    
                $.each(response.result_pakai, function(index, rows_pakai){
    
                    //SUBTOTAL ROW
                    if(rows_pakai.years != currentYear && currentYear != 0) {
                        var s1 = "<tr><td colspan='2' class='tr_total'>Total</td><td>"+subTotal+"</td></tr>";
                        subTotal = 0;
                    } else {
                        var s1 = "";
                    }
    
                    //MONTHS
                    var arr_bln = ["", "Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"];
    
                    t1  = "<tr><td>"+arr_bln[rows_pakai.month]+"</td>";
                    t2  =     "<td align='center' class='col_thn'>"+rows_pakai.years+"</td>";
                    t3  =     "<td align='right' class='col_data'>xxx</td></tr>";
    
                    //SET TO CURRENT YEAR AND ADD AMOUNT
                    currentYear = rows_pakai.years
                    subtotal += rows_pakai.[yourColumnName]
    
                    tableData += s1+t1+t2+t3; //include the s1 row
    
                    $('#t_pemakaian tbody tr').remove();
                    $('#t_pemakaian tbody').append(tableData);
    
                    count+=1;
                });
    
                //SUBTOTAL ROW FOR LAST GROUP
                var s2 = "<tr><td colspan='2' class='tr_total'>Total</td><td>"+subTotal+"</td></tr>";
                $('#t_pemakaian tbody').append(s2);
            }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?