我已经做了几个小时的搜索,并尝试了不同的代码片段和技术,但我就是不能让它们中的任何一个工作。我做过研究,我只是一个非常没有经验的开发人员,想要边做边学。
我的最终目标:有一个实时更新的图表,测试结果数据从MySQL数据库中提取,并使用Chart.JS库呈现。
我已经做了什么:
- 我有一个HTML文件嵌入JavaScript和调用AJAX函数自动刷新页面每5分钟(这已经过测试和工作)。
- 我有一个PHP文件,打开一个PDO连接到本地MySQL数据库,运行3个选择查询,并将结果存储到3个PHP数组。(我已经遍历了数组并返回了结果,数据很好)。 然后使用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脚本查询数据库
- 存储结果到数组
- 打包成JSON对象(目标是将数据从PHP传输到JS文件)
- 在JavaScript中解压JSON对象
- 加载未打包的数据到JavaScript数组
谁能告诉我正确的方法去做我想做的事?我有一个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
并将标题content type
设置为application/json
,然后您的XHR
响应将包含javascript对象与您的数据。不需要任何json解析