如何从JavaScript文件中正确解压缩编码为JSON的PHP数组中的数据


How to properly unpack data from PHP array encoded as JSON from a JavaScript file

我已经做了几个小时的搜索,并尝试了不同的代码片段和技术,但我就是不能让它们中的任何一个工作。我做过研究,我只是一个非常没有经验的开发人员,想要边做边学。

我的最终目标:有一个实时更新的图表,测试结果数据从MySQL数据库中提取,并使用Chart.JS库呈现。

我已经做了什么:

  1. 我有一个HTML文件嵌入JavaScript和调用AJAX函数自动刷新页面每5分钟(这已经过测试和工作)。
  2. 我有一个PHP文件,打开一个PDO连接到本地MySQL数据库,运行3个选择查询,并将结果存储到3个PHP数组。(我已经遍历了数组并返回了结果,数据很好)。
  3. 然后使用json_encode()将这些PHP数组中的数据存储到JSON对象中如。$totalTestsPassedArray = array(); $sql = "SELECT totalTestsPassed FROM execution ORDER BY lastDate"; $query = $conn->prepare($sql); $query->execute(array(':totalTestsPassed' => $totalTestsPassed)); while($row = $query->fetch()){ array_push($totalTestsPassedArray, $row['totalTestsPassed']); } $json_totalTestsPassedArray = json_encode($totalTestsPassedArray); //pack data into JSON object echo $json_totalTestsPassedArray; // for accessibility by AJAX foreach ($totalTestsPassedArray as $item){ //print out contents of array echo $item . '<br>'; }

我读到一个方法来消费这个JSON数据是使用jQuery的$。为了使用它,我必须"回显"出json_encoded对象的结果。我意识到我把结果打印了两次。echo $json_totalTestsPassedArray用于上述目的。

  • 我已经包含了这个PHP文件的路径在我的HTML文件#1使用<?php require '../file_name.php';?>
  • 我已经尝试了几种方法来解包这个JSON编码的对象与我的数据库数据打包:使用AJAX请求,在HTML中创建一个新的数组,然后用JSON对象泛滥它使用$。getJSON,以及人们建议在各种在线文档上做的其他一些事情,都遇到了失败。
  • 谁能告诉我正确的方法去做我想做的事?我有一个PHP文件的数据数组,我想传递的数据数组到一个数据集使用的Chart.JS填充图形,然后绘制到画布和显示我的结果。

    var data = {
            labels : ["January","February","March","April","May","June","July"],
            datasets : [
                {
                    fillColor : "rgba(220,220,220,0.5)",
                    strokeColor : "rgba(220,220,220,0.8)",
                    highlightFill: "rgba(220,220,220,0.75)",
                    highlightStroke: "rgba(220,220,220,1)",
                    data : [DATA FROM MY PHP ARRAY IN ANOTHER FILE WOULD GO HERE...]
                }
    
    再次,请原谅我的无知。我已经尽了最大的努力自己找出解决方案,希望能得到一些指导。这是我第一次使用这些工具。我原以为就这么简单:
    • 使用PHP脚本查询数据库
    • 存储结果到数组
    • 打包成JSON对象(目标是将数据从PHP传输到JS文件)
    • 在JavaScript中解压JSON对象
    • 加载未打包的数据到JavaScript数组

    在php中只打印json并将标题content type设置为application/json,然后您的XHR响应将包含javascript对象与您的数据。不需要任何json解析