mysql生成了一个数组并使用json_encode生成输出。 Javascript不产生输出。
查询结果中有两行:
科目编号科目课程简介课程期间课员
208.01.00旧约综览上2015年旧约综览上2015-06至2015-08刘健全 102.00.00成长班2015年成长班2015-05至2015-07刘美玲
PHP脚本getEventJSON.php:
mysqli_set_charset($bd, 'utf8_general_ci');
$result_event = mysqli_query($bd, $qry);
$json = array();
while ($r = mysqli_fetch_array($result_event)) {
$json[] = array("active"=>trim($r['active']), "event_id"=>trim($r['event_id']));
}
echo json_encode($json);
mysqli_close($bd);
这里是生成" UL"的javascript。并追加两个" LI"
$(document).ready(function () {
/* call the php that has the php array which is json_encoded */
$.getJSON('getEventJSON.php', function (data) {
/* data will hold the php array as a javascript object */
$.each(data, function (key, val) {
$('ul').append('<li id="' + key + '">' + val.active + ' ' + val.event_id + '</li>');
});
});
});
但是,浏览器中没有输出。我不知道如何使它工作。你的启示是最受欢迎的。
答案 0 :(得分:0)
您应该使用另一个$.each()
循环:
$.each(data, function (key, val) {
$.each(val, function (key, elem) {
$('ul').append('<li id="' + key + '">' + elem.active + ' ' + elem.event_id + '</li>');
});
});
当你循环一个有一些对象的数组时,那么在回调函数(key, val)
中,key不是实际的key
名,而是对象的索引。
因此,如果您想获取对象的密钥名称,则必须将其再次循环到数组中的每个对象,现在这次在回调中获得带有参数key
的密钥名称。
[{},{}]
在这种情况下,第一个循环将获取每个对象的索引,因此它将返回像0, 1
这样的索引。{}
,在这种情况下,回调的key
参数将给出每个中使用的实际键名称对象。