是php json_encode&;AJAX破坏了我的阵列?
我抓取一些数据库条目,创建一个2D数组,然后用AJAX将它们传递给js。但是当我在javascript中循环数组时,它是一个“未定义”的混乱。dbArray的控制台日志运行良好,因此我知道PHP/AJAX正在运行。不确定我在循环中做错了什么 PHP('load-words.PHP): Javascript:是php json_encode&;AJAX破坏了我的阵列?,php,javascript,ajax,Php,Javascript,Ajax,我抓取一些数据库条目,创建一个2D数组,然后用AJAX将它们传递给js。但是当我在javascript中循环数组时,它是一个“未定义”的混乱。dbArray的控制台日志运行良好,因此我知道PHP/AJAX正在运行。不确定我在循环中做错了什么 PHP('load-words.PHP): Javascript: $.ajax({ url: 'func/load-words.php', success: function(dbArray) { console.log(d
$.ajax({
url: 'func/load-words.php',
success: function(dbArray) {
console.log(dbArray);
var items = "<ul>";
for (var i in dbArray) {
items += "<li><a href='#'><b>" + dbArray[i][0] + ' : ' + dbArray[i][1] + "</a></li>";
}
items += "</ul>";
div = $('#dbArray');
div.html(items);
}
});
$.ajax({
url:'func/load words.php',
成功:功能(dbArray){
console.log(dbArray);
var items=“”;
用于(dbArray中的var i){
项目+=“”;
}
项目+=“
”;
div=$('dbArray');
div.html(项目);
}
});
我想这是失败的,因为jQuery将AJAX响应解释为字符串,因为PHP没有输出JSON头,AJAX也没有规定JSON。这很容易测试:
$.ajax({
url: 'func/load-words.php',
success: function(dbArray) { alert(typeof dbArray); /* "string"? */ }
});
试一试
$.ajax({
url:'func/load words.php',
dataType:'json',//console.log(dbArray);”的输出是什么?对于数组,应该使用for(i=0;i
。
版本中的var i用于迭代对象属性。OP称它为数组,但实际上它是一个对象,因为它以JSON的形式出现,所以for-in很好。但是JSON编码不是使它成为一个对象吗?请不要使用mysql.*
函数来编写新代码。它们不再被维护,社区已经开始.看到了吗?相反,你应该学习并使用or。如果你不能决定使用哪一个,将对你有所帮助。如果你选择PDO,.完美。非常感谢。这是一个很好的教训,下次我会知道的!
$.ajax({
url: 'func/load-words.php',
success: function(dbArray) { alert(typeof dbArray); /* "string"? */ }
});
$.ajax({
url: 'func/load-words.php',
dataType: 'json', //<-- now we explicitly expect JSON
success: function(dbArray) { alert(typeof dbArray); /* "object"? */ }
});