Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.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
Javascript Highcharts显示数据,但可以';t显示图表_Javascript_Php_Jquery_Highcharts - Fatal编程技术网

Javascript Highcharts显示数据,但可以';t显示图表

Javascript Highcharts显示数据,但可以';t显示图表,javascript,php,jquery,highcharts,Javascript,Php,Jquery,Highcharts,我正在尝试显示动态图表,我们可以按年、月、日改变图表 我已经成功了,我可以根据每次更改X轴,通过Json数组传递的数据也成功了,但是图表没有出来 Javascript: $.ajax({ url: 'content/getChart.php', type: "POST", async: true, dataType: 'json', data: { type: type,

我正在尝试显示动态图表,我们可以按年、月、日改变图表

我已经成功了,我可以根据每次更改X轴,通过Json数组传递的数据也成功了,但是图表没有出来

Javascript:

$.ajax({
        url: 'content/getChart.php',
        type: "POST",
        async: true,
        dataType: 'json',
        data: {
            type: type,
            part: part,
            year: year_val,
            month: month_val,
            day: day_val,
            days_in_month: days_in_month
        },
        success: function (data){
            var data_array = [];
            $.each(data, function(i, val) {
                //data_array.push({x: val.time * 1000, y: val.value}); //first result
                data_array.push(val.time * 1000, val.value);
            });
            purchase_chart.series[0].setData(data_array);
            console.log(data_array);
        }
    });
PHP:

结果仍然与旧代码相同。但是,如果我手动放置json数组,则会出现highchart错误#15

而且,如果我像这样(手动)放置数组,图形就会出现

[[1385766000000,0],
[1417302000000,0],
[1448838000000,0],
[1480460400000,12],
[1511996400000,0],
[1543532400000,0],
[1575068400000,0]]

尝试更改
.setData(数据数组)到下一行:

purchase_chart.series[0].setData([data_array], true);
它会自动触发图表的重画操作

另外,下一个选项可能会有所帮助:

// Front-End: change datetime to milliseconds
data_array.push([val.time * 1000, val.value]);

// Back-End [1]: submit time; remove convertation to string
$timemk = mktime(...);

// Back-End [2]: order dates; Highchart will stack when data is not ordered
$resQry .= "ORDER BY `purchase_date`";

// Back-End [3]: remove array bind for values
$purchase_array[$timemk] = array(
    'time' => $timemk,
    'value' => (int) $row['total_sum']
);

错误是什么?您是否尝试过通过DOM检查它(这可能是一个z索引问题)?我建议打开console。在大多数情况下,Highchart会将错误与问题描述的链接以及解决问题的可能性一起推到错误中。@ghost123,您能分享服务器的响应吗?那么,与手动输入对齐的微小更改(
data\u array.push([val.time*1000,val.value]);
)关于这一点,结果是:
13857660000,[0],1417302000000,[0],…]所以图表认为时间和值是两个分开的值,所以图形就像一个正弦波(但至少图形显示是的),我想让它像:
[138576000000,0],[1417302000000,0],…]明白了。。。从PHP部件中删除数组绑定对不起,数组绑定?
purchase_chart.series[0].setData([data_array], true);
// Front-End: change datetime to milliseconds
data_array.push([val.time * 1000, val.value]);

// Back-End [1]: submit time; remove convertation to string
$timemk = mktime(...);

// Back-End [2]: order dates; Highchart will stack when data is not ordered
$resQry .= "ORDER BY `purchase_date`";

// Back-End [3]: remove array bind for values
$purchase_array[$timemk] = array(
    'time' => $timemk,
    'value' => (int) $row['total_sum']
);