Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PHP数组数据发送到javascript_Javascript_Php_Plotly - Fatal编程技术网

将PHP数组数据发送到javascript

将PHP数组数据发送到javascript,javascript,php,plotly,Javascript,Php,Plotly,我有一个PHP函数,我正在查询mySQL数据库,我需要将该查询中的数据发送到javascript函数,以便在plotly graph中使用数据。我能够用PHP查询数据并获取所需信息,但当我试图在javascript文件中获取信息时,它会显示NULL。这是我的代码,上面有我得到的注释 PHP函数: function getCourses() { $conn = getDBConn(); $query = "SELECT course_id FROM TraineeEventCour

我有一个PHP函数,我正在查询mySQL数据库,我需要将该查询中的数据发送到javascript函数,以便在plotly graph中使用数据。我能够用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. 
}
函数getCourses(){ $conn=getDBConn(); $query=“按课程id从TraineeEventCourses组中选择课程id;”; $result=mysqli_query($conn,$query)或die('Error connecting to mysql'); while($row=mysqli\u fetch\u assoc($result)){ foreach($courseID行){ $course=$courseID; 印刷(课程); echo“
”;//按预期打印12348910 //返回$course; } } //印刷(课程); //echo“
”;//当未注释掉时,它与return语句一起使用,但由于某种原因,它只返回10,而不是返回整个数组。 } 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 } } );
var=”;
console.log(课程);//返回NULL,但应返回12348910
TESTER=document.getElementById('TESTER');
绘图。绘图(测试仪[{
十:[课程],
y:[课程]}],
{边距:{t:0}});

为什么不将查询结果放入一个数组,在这里变盲:
while($row=mysqli\u fetch\u数组($result,mysqli\u NUM))
{
$data[]=$row;
}


返回$data
作为一个函数,您将其包装起来,并根据在javascript中调用函数getCourse()时指定的变量对其进行json_编码($data_variable)

您需要将所有课程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 } } );
函数getCourses(){ $conn=getDBConn(); $query=“按课程id从TraineeEventCourses组中选择课程id;”; $result=mysqli_query($conn,$query)或die('Error connecting to mysql'); $courses=array(); while($row=mysqli\u fetch\u assoc($result)){ $course=$row['course_id']; 印刷(课程); echo“
”;//按预期打印12348910 $courses[]=$courses; } 退还$200课程; } $course=getCourses(); ?> var=”; console.log(课程);//返回NULL,但应返回12348910 TESTER=document.getElementById('TESTER'); 绘图。绘图(测试仪[{ 十:[课程], y:[课程]}], {边距:{t:0}});
在哪里设置全局变量
$course