我正试图编写一个脚本来使用HighCharts生成图表。我有一个问题,调用我的数据导致一个错误。
SyntaxError: missing] after element list
这是我使用的代码:
var data1 = [<?php
mysql_select_db($database_test, $con);
$query_result = sprintf("SELECT AName FROM Answers WHERE AName IS NOT NULL GROUP BY AName");
$result = mysql_query($query_result, $con) or die(mysql_error());
while ($row_result = mysql_fetch_assoc($result)){
?>
[<?php echo $row_result['AName'];?>],
<?php
}
?>
]
尝试在Firefox开发控制台中调试它,它指出上面的代码是原因。有人知道为什么在元素列表后出现错误"SyntaxError: missing]吗?
如果我硬编码数据,它工作良好。
非常感谢你能给予的任何帮助。在数组前添加逗号(第一个数组除外),它将完成任务。
还可以看看json_encode。
var data1 = [<?php
mysql_select_db($database_test, $con);
$query_result = sprintf("SELECT AName FROM Answers WHERE AName IS NOT NULL GROUP BY AName");
$result = mysql_query($query_result, $con) or die(mysql_error());
$first = true;
while ($row_result = mysql_fetch_assoc($result)){
if($first) {
$first = false;
} else {
echo ', ';
}
echo '[' . $row_result['AName'] . ']';
}
?>
]
根据注释,看起来AName
是一个需要用引号括起来的字母数字字符串。
<?php
mysql_select_db($database_test, $con);
$query_result = sprintf("SELECT AName FROM Answers WHERE AName IS NOT NULL GROUP BY AName");
$result = mysql_query($query_result, $con) or die(mysql_error());
?>
var data1 = [
<?php while ($row_result = mysql_fetch_assoc($result)) { ?>
["<?php echo $row_result['AName'];?>"], // <—— Wrap in quotes here
<?php } ?>
];
还有,正如KyleK指出的,为什么你不用json_encode
呢?
首先,您将创建所需的数据库值的PHP数组。在此之后,您将使用json_encode($array)将其转换为json编码。然后使用$.each()函数来创建高的图表数组值。
文档$()时()函数{
var array = [];
array.push('apple');
array.push('apple');
array.push('apple');
alert(array);
});