0

我在我的 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;

但即使我在数据库中有很多记录,它也只能输出一行。

第二个麻烦是显示记录。

我在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);
                    });
                    }
                });

为此,我遇到的麻烦是,它不是在一行中显示所有记录,而是水平和垂直填充所有项目,因此我的行数与列数一样多。

任何帮助都会很受欢迎

4

2 回答 2

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>')
});

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

于 2013-11-04T11:20:05.660 回答
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 >= 5.2.0

于 2013-11-04T11:26:00.177 回答