使用谷歌图表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);
}
}
答案 0 :(得分:0)
(float)工作正常,这里是:
$rows[] = array(explode(" - ", $row['started_on'])[0].trim(), (float)str_replace("%", "", $row['data']));
echo json_encode($rows);
将此数据提供给chart.draw(数据,选项);