将数组的所有值附加到一个表行

时间:2013-11-04 10:17:12

标签: javascript jquery

我有一个AJAX请求,它从我的数据库中返回一个数组,如下所示:

$objet['name']
$objet['date']
$objet['amount']

当我执行each函数时,它会为每个行和键执行迭代,

我想为每一行进行一次迭代并在表格行中显示数据。以下是我的代码:

$("#show_debours").dialog("open");
    var groupe_debours = $(this).closest('tr').find('.groupe').val();
    $.ajax({
        type: "POST",
        url: "requetes_ajax/fetch_debours_detail.json.php",
        data: "groupe=" + groupe_debours,
        success: function(data){
            $('.remove').remove();
            $.each(data, function (data) {
                $('#fetchdebours tr:last').after('<tr class="remove"><td>' + data.libelle_debours + '</td><td>' + data.date + '</td><td>' + data.debours_montant_ht_tva + '</td><td>' + data.debours_montant_ht_no_tva + '</td><td>' + data.debours_montant_ttc  + '</td></tr>')
                //alert(key + ': ' + value);
            });
        }
    });
});

一切正常,但不是返回一行包含所有值,而是返回与行和变量一样多的行

例如,如果我的数据库中有3行,则会在表格中返回9行。它不应该。

在php中我做

<?php
    foreach($data as $row):
        echo "<tr><td>{$data['name']}</td><td>{$data['date']}</td>{$data['amount']}</tr>";
    endforeach;
?>

这很好,它返回给我3行,所有值都填充。我想在jQuery中也一样,但我不知道如何。我做了一些研究没有成功。

非常感谢任何形式的帮助

1 个答案:

答案 0 :(得分:1)

它会创建多行,因为您在每次迭代中都创建了一个tr元素。试试这个:

success: function(data){
    $('.remove').remove();
    var $tr = $('<tr />', { 'class': 'remove' });
    $.each(data, function (data) {
        $tr.append('<td>' + data.libelle_debours + '</td><td>' + data.date + '</td><td>' + data.debours_montant_ht_tva + '</td><td>' + data.debours_montant_ht_no_tva + '</td><td>' + data.debours_montant_ttc + '</td>');
    });
    $('#fetchdebours tr:last').after($tr);
}