使用PHP在Google Line图表中使用浮点值

时间:2016-04-05 15:25:51

标签: php json charts

使用谷歌图表API使用(int)值绘制线图非常精细(参见下面的代码)但其中一个百分比列值是浮点数所以我尝试(floatval)而不是(int)但PHP服务器文件抛出500内部服务器错误。

特别是使用浮点值的解决方案是什么?

(int)str_replace("%", "", $row['percentage'])

另请注意,我的值是来自MySQL的JSON。

PHP(服务器文件):

   $rows[] = array(explode(" - ", $row['started_on'])[0].trim(), 'Coverage');
        while($row =  mysqli_fetch_array($result)) {
            $rows[] = array(explode(" - ", $row['started_on'])[0].trim(), (int)str_replace("%", "", $row['percentage']));
        }

JS(在php中):

// Draw line chart
function drawLineChart(chartType, chartTitle) {
    google.charts.setOnLoadCallback(lineChartData);

    function lineChartData() {
        var lineChartJsonData = $.ajax({
            type: 'GET',
            url: "<?php echo $general_scripts; ?>",
            data: { id1: chartType, id2: "Chart", id100: "<?php echo $getPage; ?>" },
            dataType:"json",
            async: false,
            beforeSend: function() {
                $("#progress").show();
            },
            success: function(data) {
                $("#progress").hide();
            },
        }).responseText;

        var options = {
            title: chartTitle,
            width: '390',
            height: '300',
            backgroundColor: '#f5fffa',
        };

        var data = new google.visualization.arrayToDataTable(($.parseJSON(lineChartJsonData)));
        var chart = new google.visualization.LineChart(document.getElementById(chartType));
        chart.draw(data, options);
    }
}

1 个答案:

答案 0 :(得分:0)

(float)工作正常,这里是:

$rows[] = array(explode(" - ", $row['started_on'])[0].trim(), (float)str_replace("%", "", $row['data']));

echo json_encode($rows);

将此数据提供给chart.draw(数据,选项);