0

我有一个 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 中也一样,但我不知道怎么做。我做了一些研究,但没有成功。

任何形式的帮助将不胜感激

4

1 回答 1

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);
}
于 2013-11-04T10:19:46.080 回答