我正在尝试编写一个脚本来使用HighCharts生成图表。我的数据调用存在问题,导致错误。
在元素列表之后SyntaxError:missing]
这是我正在使用的代码:
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”。
如果我对数据进行硬编码,那就可以了。
非常感谢您提供的任何帮助。
答案 0 :(得分:1)
在阵列之前添加昏迷,除了第一个之外,它会起作用。
但也要看看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'] . ']';
}
?>
]
答案 1 :(得分:0)
根据评论,看起来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
?
答案 2 :(得分:0)
首先,您将创建所需的数据库值的php数组。 在此之后,您将使用j json_encode($ array)将其转换为json编码。 然后使用$ .each()函数创建高图表数组值。
(文档)$。就绪(函数(){
var array = [];
array.push('apple');
array.push('apple');
array.push('apple');
alert(array);
});