我从ajax调用返回的数组有问题。
使用json加密数组。它如下所示
while ($found_course = mysql_fetch_assoc($sql)) {
$info[] = array(
'code' => $found_course['course_code'],
'name' => $found_course['course_name'] );
}
echo json_encode($info); //this is returned to javascript
然后问题是我无法使用javascript中返回的上述数组。我尝试使用$ .each方法但无济于事。 eval()也不起作用,因为它将输出作为[object object]。有人可以帮我这个。
我想要的是能够单独访问代码和课程名称
感谢。
答案 0 :(得分:3)
使用for()
for (var c in myAjaxArray){
myAjaxArray[c].code; // contains the code
myAjaxArray[c].name // contains the name
}
确保将jQuery ajax调用中的dataType设置为“JSON”,以确保您拥有json对象。或使用$.getJSON()
功能。
答案 1 :(得分:0)
<script>
var data = <?= json_encode($info); ?>;
for (var i = 0; i < data.length; i++) {
var item = data[i];
alert(item["code"] + " / " + item["name"]);
}
<script>
答案 2 :(得分:0)
这可以为您提供所需的数据。不确定你是如何尝试使用$ .each但它应该在你的ajax调用的成功函数中。还要确保数据类型设置为json。
success: function(data){
$(data).each(function(idx,val){
alert(val.code + " " + val.name);
})
}