为了账号安全,请及时绑定邮箱和手机立即绑定

将 PHP 数组数据发送到 javascript

将 PHP 数组数据发送到 javascript

PHP
catspeake 2022-06-17 16:37:39
我有一个 PHP 函数,我正在查询 mySQL 数据库,我需要将该查询中的数据发送到一个 javascript 函数,以便可以在绘图图中使用数据。我能够在 PHP 中查询数据并获取我需要的信息,但是当我尝试在我的 javascript 文件中获取信息时,它显示为 NULL。这是我的代码,其中包含有关我得到的内容的评论。PHP函数:function getCourses() {    $conn = getDBConn();    $query = "SELECT course_id FROM TraineeEventCourses GROUP BY course_id;";    $result = mysqli_query($conn, $query) or die('Error connecting to mysql');    while ($row = mysqli_fetch_assoc($result)) {        foreach ($row as $courseID) {            $course = $courseID;            print_r($course);             echo "<br>";   // Print's 1 2 3 4 8 9 10 as expected             // return $course;        }    }    // print_r($course);     // echo "<br>"; // When not commented out this goes with the return statement but it only returns 10 for some reason instead of returning the whole array. }Javascript:var courses = "<?php echo json_encode($course, JSON_PRETTY_PRINT) ?>";            console.log(courses); // Returns NULL but should be returning 12348910            TESTER = document.getElementById('tester');            Plotly.plot( TESTER, [{                x: [courses],                y: [courses] }],                { margin: { t: 0 } } );
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

您需要将所有课程 ID 放入一个数组中,并从函数中返回它。


也不需要foreach循环。$row是具有单个元素的数组,您可以使用数组索引直接访问它。


function getCourses() {

    $conn = getDBConn();

    $query = "SELECT course_id FROM TraineeEventCourses GROUP BY course_id;";

    $result = mysqli_query($conn, $query) or die('Error connecting to mysql');

    $courses = array();

    while ($row = mysqli_fetch_assoc($result)) {

        $course = $row['course_id'];

        print_r($course); 

        echo "<br>";   // Print's 1 2 3 4 8 9 10 as expected 

        $courses[] = $course;

    }

    return $courses;

}


$course = getCourses();

?>

<script>

var courses = "<?php echo json_encode($course, JSON_PRETTY_PRINT) ?>";

console.log(courses); // Returns NULL but should be returning 12348910


TESTER = document.getElementById('tester');

Plotly.plot( TESTER, [{

    x: [courses],

    y: [courses] }],

  { margin: { t: 0 } } );


查看完整回答
反对 回复 2022-06-17
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

你为什么不把你的查询结果放到一个数组中,在这里失明: while($row = mysqli_fetch_array($result, MYSQLI_NUM)) { $data[] = $row; }

return $data;作为一个函数,您将其包装起来,并根据您在将函数 getCourse() 调用到javascript中时分配的变量来包装它和 json_encode($data_variable) ?


查看完整回答
反对 回复 2022-06-17
  • 2 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号