如何使用JavaScript变量作为键访问PHP数组元素?

时间:2017-04-17 11:21:49

标签: javascript php arrays loops

所以我试图建立一个简单的学术体系。 我制作了动态框,显示课程信息。 核心代码看起来像这样

function addcourses(){  //(numcourses)
    var num_courses= <?php echo $_GET['num']?>; //=numcourses
    var newdiv;
    var divIdName;
    var i=0;
    for(i=1;i<=num_courses;i++){
        var divtoadd = document.getElementById('courselist');
        newarticle = document.createElement('article');
        divIdName = 'course'+i;
        newarticle.setAttribute('id',divIdName);
        newarticle.innerHTML ='<div class="box"><h2><?php echo $course_num_arr[i]?></h2><div class="content"><p>Credit Hours: <?php echo $credit_arr[0]?> </p><p>Professor: <?php echo $prof_arr[0]?></p><p>Average GPA: <?php echo $avg_arr[0]?></p><p>GPA: <?php echo $gpa_arr[0]?></p></div></div>';
        call_course();        
        divtoadd.appendChild(newarticle);
    }
}

问题在于<?php echo $course_num_arr[i]?>,因为i是来自javascript的变量,我不知道如何处理这个问题。

我希望在$course_num_arr[1]i = 1 $course_num_arr[2]时回复i = 2,依此类推。

1 个答案:

答案 0 :(得分:0)

如果您不想使用ajax调用并希望将代码放在PHP文件中,则可以使用json_encode()函数。请参考以下代码。

<?php
$cources = array( "0" => array ("name" => "maths","credits" => 30),"1"
=> array ("name" => "physics","credits" => 30));
?>
<script>
data=<?php echo json_encode($cources); ?>;
for(i=0;i<data.length;i++){
    alert(data[i].name)
    var h = document.createElement("H1");
    var t = document.createTextNode(data[i].name);
    h.appendChild(t);
    document.body.appendChild(h);
}
</script>