我想创建一个动态列表组,其中包含在页面加载时加载的list-group-items。列表组项目来自数据库。 php函数返回一系列课程(这可以成功)。我使用Javascript来获取此数组,JSON对其进行编码并在列表组中显示项目,但Javascript代码无效。我使用过<body onload="get_courses()">
,但这不适用于页面加载。但是,如果我使用<body onload="alert('test');">
,它可以工作,但函数内的警报不起作用。
我的代码如下。我在相同的html文件中有Javascript代码。
的javascript
<script type="text/javascript">
function get_courses(){
var service = <?php echo json_encode(get_course_list($userID)); ?>;
var course_array = JSON.parse(service);
var index;
var ul = document.getElementById("course_list");
for (index=0; index<course_array.length; index++){
var li = document.createElement("a");
li.appendChild(document.createTextNode(course_array[index]));
ul.appendChild(li);
}
}
</script>
HTML
<body onload="get_courses()">
<form action="../../controller/progressTeacherControl.php" method="get">
<div class="box-body">
<div class="list-group" id="course_list">
<!--a href="#" class="list-group-item">This would be a generated course name</a-->
</div>
</div>
</form>
</body>
progressTeacherControl.php是定义php函数get_course_list()的地方。 任何帮助解决这个问题将不胜感激。
答案 0 :(得分:1)
感谢所有建议,但我无法找到上述解决方案。但是,我找到了使用php来获取我想要的数据的解决方法,并且它也更容易使用。代码如下:
<强> PHP 强>
<form action="student_progress_allstudents.php" method="get">
<div class="box-body">
<div class="list-group" id="course_list">
<?php
foreach(get_course_list($userID) as $block) {
list($section, $course, $course_id) = explode(" ", $block); ?>
<a href="student_progress_allstudents.php?c_id=<?php echo $course_id ?>" class="list-group-item">
<?= $course ?>
</a>
<?php } ?>
</div>
</div>
</form>
答案 1 :(得分:0)
如果您在那里打印JSON,那么它将采用适合JavaScript的格式。它将打印为文字数组。
请放弃JSON.parse()
。
答案 2 :(得分:-1)
如果你在函数中注释掉所有代码并将alert()放在那里,它会运行吗?
此外,console.log()不如关闭警报那么烦人。