【发布时间】:2015-04-12 18:18:41
【问题描述】:
我正在尝试扩展我在 JSFiddle 找到的出色的 HighCharts 列范围图示例。经过多天和大量研究后,我几乎完成了动态生成图表,但我无法以正确格式获取 HighCharts 的 y 数据。
我可以使用 json_encode 成功地将 php 中的服务器中的 x 数据获取到 Javascript 中的浏览器,但是即使在阅读 how to use json_encode 和 json_encode returning the next rows values - PHP PDO SQL HighCharts 之后,我仍然无法获取 y 数据来做同样的事情。我觉得我正处于解决方案的风口浪尖,但我的电脑却有不同的想法。
为了简化我的问题解决,我在 PHP 中硬编码了一些示例数据:
$data_x_in_php_array = array();
// set x values
array_push($data_x_in_php_array, 'A');
array_push($data_x_in_php_array, 'B');
// set y values
$data_y_in_php_array[] = array('x' => 0, 'low' => 1375488000000, 'high' => 1375527600000);
接下来我使用 json_encode 将数据从 php 移动到 javascript:
var data_x_in_js_array = <?php echo json_encode($data_x_in_php_array); ?>;
alert('data_x_in_js_array =' + data_x_in_js_array);
var data_y_in_js_array = <?php echo json_encode($data_y_in_php_array, JSON_NUMERIC_CHECK); ?>;
alert('data_y_in_js_array =' + data_y_in_js_array);
然后我将示例中提供的一些数据注释掉,并将其替换为 data_y_in_js_array:
var data_x = data_x_in_js_array;
data_y = [{//blue
data_y_in_js_array // uncommenting this line and commenting out the next three lines causes bars to disappear in the chart
//x: 0,
//low: 1375488000000, // milliseconds since unix epoch
//high: 1375527600000 // milliseconds since unix epoch
}
不幸的是,图表呈现时没有显示条形。
我在优秀的PhpFiddle 上发布了一个示例。非常感谢任何帮助。
【问题讨论】:
-
对我来说很好 " $data_y_in_php_array[] = array('x' => 0, 'low' => 1375488000000, 'high' => 1375527600000);"工作正常。 data_y_in_js_array 的问题在于它是字符串数组而不是对象中的数字。一般不是json。
-
嗯...当我转到 PhpFiddle 示例的第 100 行时,取消注释 data_y_in_js_array,并注释掉接下来的三行,就像上面的最后一段代码一样,条不显示。感谢您抽出宝贵时间查看此@SebastianBochan
标签: json highcharts