Javascript 函数不会在页面加载时执行

标签 javascript html json

我想创建一个动态列表组,其中包含在页面加载时加载的列表组项目。列表组项目取自数据库。 php 函数返回一个类(class)数组(此操作成功)。我使用 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() 的地方。 解决此问题的任何帮助将不胜感激。

最佳答案

如果您在那里打印 JSON,那么它已经是适合 JavaScript 的格式。它将打印为文字数组。

因此删除 JSON.parse()

关于Javascript 函数不会在页面加载时执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34843385/

相关文章:

javascript - 如何限制字段仅接受 4 个数字字符作为输入并在 div 中获取警报

javascript - 在更改之前显示 Bootstrap 切换文本

html - htaccess和CSS的404错误处理

php - 循环遍历 mysql 导致 php

javascript - 为什么 'await' 不等待 axios 请求完成?

javascript - 无法获取AngularJS中下拉菜单的值

javascript - 与重复相结合

javascript - 跨度 addClass 不工作 ajax

ruby-on-rails - JSON 对象操作

javascript - 如何组织css和js文件的缩小和打包以加快网站速度?