SyntaxError: missing ] after element list PHP, Jquery &


SyntaxError: missing ] after element list PHP, Jquery & Highcharts

我正试图编写一个脚本来使用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);

});