duanpin2034
duanpin2034
2016-04-05 15:25

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

已采纳

Line chart is drawn very fine using (int) values using Google Charts API (see exact below code) but one of the percentage column value is in float so I tried (floatval) instead of (int) but PHP server file throws 500 internal server error.

What is the solution in especially at to use float value?

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

Also note that, my values are coming as JSON from MySQL.

PHP (server file):

   $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 (in 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条回答

  • dongpeihui1051 dongpeihui1051 5年前

    (float) works fine, here it is:

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

    Give this data to chart.draw(data, options);

    点赞 评论 复制链接分享