返回带有 cURL 的 JSON 文件以使用高图表中的数据
Returning JSON file with cURL to use data in a HighCharts stock chart
我正在尝试将油价数据的免费JSON源从具有cURL的不同服务器获取到HighCharts StockChart中。
到目前为止,我拥有的代码如下:
<div id="container" style="width:100%; height:400px;">
<?php
$ch = curl_init('https://www.quandl.com/api/v1/datasets/CHRIS/ICE_B1.json');
$data = curl_exec($ch);
curl_close($ch);
?>
<script>
$(function () {
$.getJSON('$data', function (data) {
// Create the chart
$('#container').highcharts('StockChart', {
rangeSelector : {
selected : 1
},
title : {
text : description
},
series : [{
name : name
data : data
}
}]
});
});
});
</script>
</div>
但这一切都是将原始 JSON 转储到我的浏览器窗口中,而不是制作一个漂亮的图表。
任何帮助将不胜感激!
您正在尝试同时使用 PHP CURL
和 jQuery getJSON
,我想您有点困惑。
CURL 由服务器执行,这样它只会在获得结果时打印结果,它甚至不会将结果存储在$data
中,因为为此您需要初始化 curl 以等待响应 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
.如果它将结果保存在PHP变量$data
中,则此变量在Javascript中不可用,因为javascript是在客户端计算机上执行的,而不是在服务器上执行的。要解决这个问题,你可以这样做
<php echo "<script> data = ".$data."; </script>"; ?>
这不是很漂亮,但会起作用。但是,它仍然不适用于您的getJSON
函数,因为此函数期望 url 从中获取 json 数据,并且不希望 json 数据作为参数。
简而言之,您只能使用如下所示的getJSON
函数并删除PHP代码,它应该可以工作,我认为这就是您想要的。
$(function () {
$.getJSON('https://www.quandl.com/api/v1/datasets/CHRIS/ICE_B1.json', function (data) {
// Create the chart
$('#container').highcharts('StockChart', {
rangeSelector : {
selected : 1
},
title : {
text : description
},
series : [{
name : name
data : data
}]
});
});
});
因为getJSON
完全按照您尝试使用curl
函数执行的操作:从您提供的 url 中获取json
数据并将其存储在名为 data
的变量中。
相关文章:
- 如何访问高图表工具提示中的任何特定数据
- 高图表数据导入 JSON - 格式
- 高图表不显示来自csv文件的数据
- 高图表数据标签重叠
- 删除高图表数据标签上的阴影/背景发光
- 如何在高图表中设置动态数据
- 将不同的符号添加到具有动态数据的高图表中
- 使用节点下载高图表数据,但不在浏览器中显示
- 使用laravel和ajax加载高图表数据
- 在高图表中按类别对子体数据进行排序
- 动态显示实时高图表数据,无需警报
- 使用 CSV 文件预处理高图表数据
- 在高图表数据中使用字符串
- 在没有解析 JSON 的情况下获取高图表数据
- 高图表数据减少一天
- 高图表数据集数组
- 如何使用十字准线在 x 轴上设置高图表数据系列
- 如何组合高图表数据
- 动态填充高图表数据
- 高图表:数据更新后,同步图表不再同步