jquery和ajax,如何返回一个数组并显示它

时间:2013-11-04 11:17:49

标签: javascript php jquery ajax

我在ajax请求中遇到了一些麻烦。

事实上,我不知道如何记录多少。

I've tried this :
    $rqt = "SELECT a,b,c from table";
    $res = mysql_query($rqt);
    while ($data = mysql_fetch_assoc($res)):
    $objet = $data;
    endwhile;
//requettage
    return $objet;

但是即使我在数据库中有很多记录,它也只能向php发送一行。

第二个问题是显示记录。

我在jquery中试过这个

$.ajax({
                    type: "POST",
                    url: "requetes_ajax/fetch_debours_detail.json.php",
                    data: "groupe="+groupe_debours,
                    success: function(data){
                    $('.remove').remove()
                    console.log(data);
                    $.each(data, function (key, value) {
                        $('#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);
                    });
                    }
                });

对于那些事情,我遇到的麻烦是,它不是在一行中显示所有记录,而是水平地和垂直地填充所有项目,所以我有尽可能多的行。

任何帮助都会受到很多关注

2 个答案:

答案 0 :(得分:1)

while循环中,您将永远用最新的行替换$objet变量,因此最后的行就是您获得的所有内容。

要构建数组,请使用以下代码:

$objet = array();
while ($data = mysql_fetch_assoc($res)):
    $objet[] = $data;
endwhile;

要将数据作为JSON传递,您应首先在dataType: "json"来电中声明$.ajax。第二步是将PHP数组实际输出为JSON。请尝试以下代码:

$json = json_encode($objet);
print($json);

由于您现在传递的是整个数组而不是一个对象,因此您的显示代码需要进行一些小调整:

$.each(data, function (k, obj) {
    $('#fetchdebours tr:last').after('<tr class="remove"><td>' + obj.libelle_debours + '</td> ... </tr>')
});

我没有测试过代码,请谨慎使用。

答案 1 :(得分:0)

从你ajax请求的语法,你想让json作为回应回来,试试这个:

$rqt = "SELECT a,b,c from table";
$res = mysql_query($rqt);
$data = mysql_fetch_assoc($res);
return json_encode($data);

请参阅json_encode

需要PHP&gt; = 5.2.0