我正在向 jQuery 发送一个数组,然后遍历这些值并显示它们,但我可以让它正常工作。有人能给我指明正确的方向吗-
PHP - 唯一重要的部分 - echo json_encode($tR);
jQuery-
$(document).on('click', '.chooseStat', function(){
var id = $(this).attr('id');
$.post('chooseStat.php', {id:id}, function(data){
console.log(data);
var open = '';
for(var i = 0; i < data.length; i++) {
if (i % 2 == 0) {
open+="<tr class='alt'>";
open+="<td>"+data[i]+"</td>";
open+="<td>"+data[i]+"</td>";
open+="<td>"+data[i]+"</td>";
open+="</tr>";
}
else {
open+="<tr>";
open+="<td>"+data[i]+"</td>";
open+="<td>"+data[i]+"</td>";
open+="<td>"+data[i]+"</td>";
open+="</tr>";
}
}
$('#statDisplayBody').html(open);
});
});
这是将数组发送到 jQuery 脚本时的样子 - http://prntscr.com/24wa68
这是我尝试使用脚本中的方法显示它们时的样子 - http://prntscr.com/24wadk
我的新 jquery -
$(document).on('click', '.chooseStat', function(){
var id = $(this).attr('id');
$.post('chooseStat.php', {id:id}, function(data){
console.log(data);
var open = '<th>Rank</th><th>Username</th><th>Stat</th>';
for(var i = 0; i < data.length; i++) {
if (i % 2 == 0) {
open+="<tr class='alt'>";
open+="<td>"+data[i]["rank"]+"</td>";
open+="<td>"+data[i]["username"]+"</td>";
open+="<td>"+data[i]["score"]+"</td>";
open+="</tr>";
}
else {
open+="<tr>";
open+="<td>"+data[i]["rank"]+"</td>";
open+="<td>"+data[i]["username"]+"</td>";
open+="<td>"+data[i]["score"]+"</td>";
open+="</tr>";
}
}
$('#statDisplayBody').html(open);
}, "json");
});
现在返回一个正确的数组,但我循环遍历的方式显然不起作用,因为现在正在发生这种情况 - http://prntscr.com/24wcuz (它只显示数组的最后一行)。
最佳答案
您需要在 JavaScript 中正确解析它。这可以通过 data = JSON.parse(data);
完成,或者因为您已经在使用 $.post
,如下所示(参见 jQuery API, Example 7 )
$.post('chooseStat.php', {id:id}, function(data){
//code
}, "json");
关于javascript - 使用 $.post() 将 PHP 数组发送到 jQuery,然后循环遍历这些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20037312/