我在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);
});
}
});
对于那些事情,我遇到的麻烦是,它不是在一行中显示所有记录,而是水平地和垂直地填充所有项目,所以我有尽可能多的行。
任何帮助都会受到很多关注
答案 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