【发布时间】:2019-04-15 22:21:32
【问题描述】:
我正在尝试将数据从 AJAX/JQUERY 导出到 Morris.JS。
变量数据图表返回数据。但 morris.js 图表不返回线/条
$("#diseaseselection").change(function(){
$("#chart").empty();
var diseaseselection = $("#diseaseselection").val();
$.ajax({
url: "chart.php",
method: "POST",
data: {
diseaseselection: diseaseselection
},
success: function(data) {
Morris.Line({
element : 'chart',
data:[data],
xkey:'age',
ykeys:[ 'totalM', 'totalF'],
labels:['Total MALE', 'Total FEMALE'],
hideHover:'auto',
pointStrokeColors: ['white'],
lineWidth:'6px',
parseTime: false,
lineColors: ['Skyblue', 'Pink'],
});
}
});
});
这是我的示例 PHP 代码 请帮助我如何弄清楚我非常需要它,非常感谢。已经尽力了
$diseaseselection = $_REQUEST['diseaseselection'];
if(isset($diseaseselection)){
$result = mysqli_query($con, "SELECT disease,age,SUM(CASE WHEN gender = 'm' THEN 1 ELSE 0 END) AS totalM, SUM(CASE WHEN gender = 'f' THEN 1 ELSE 0 END) AS totalF FROM mdr where disease = '$diseaseselection' GROUP BY disease , age");
$chart_data = '';
while($row = mysqli_fetch_array($result)) {
$chart_data .= "{ age:'".$row["age"]."', totalM:".$row["totalM"].", totalF:".$row["totalF"]."}, ";
}
$chart_data = substr($chart_data, 0, -2);
echo $chart_data; }
这是我的示例输出 这是基于我的控制台日志 console.log(data); 请帮助我如何弄清楚我非常需要它,非常感谢。已经尽力了
{ age:'0-1', totalM:2, totalF:1},
{ age:'1-4', totalM:1, totalF:0},
{ age:'10-14', totalM:0, totalF:1},
{ age:'15-19', totalM:0, totalF:1},
{ age:'5-9', totalM:0, totalF:3},
{ age:'55-59', totalM:6, totalF:0}
【问题讨论】:
-
你好像忘了说完最后一句话。无论如何...
datachart的内容是什么样的?您是否尝试过data: datachart(即没有将数据图表包装在另一个数组中 - 我不知道,但这似乎没有必要)? -
我已经尝试过这个数据:[数据],没有在其他变量中声明它,但仍然没有行
-
{ age:'0-1', totalM:2, totalF:1}, { age:'1-4', totalM:1, totalF:0}, { age:'10- 14',totalM:0,totalF:1},{年龄:'15-19',totalM:0,totalF:1},{年龄:'5-9',totalM:0,totalF:3},{年龄:'55-59', totalM:6, totalF:0} 这里是样本输出数据
-
你能显示生成它的 PHP 吗?
-
我问是因为您的输出不是有效的 JSON...它是一系列对象,需要一个数组括号将它们括起来才能有效。而且,我认为您需要在从服务器到达时将 JSON 数据(这只是文本,记住)解析为 Javascript 变量。我认为您现在正在做的是将包含单个字符串的数组传递给 MorrisJS,而不是对象列表。但是在您从服务器提供的内容实际上是有效的 JSON 之前,您无法成功解析它。因此,如果您向我展示您的服务器代码,我希望能够为您解决这个问题。
标签: javascript jquery json ajax morris.js