在元素列表PHP,Jquery&之后的SyntaxError:missing] Highcharts

时间:2015-09-18 08:39:54

标签: php jquery highcharts

我正在尝试编写一个脚本来使用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”。

如果我对数据进行硬编码,那就可以了。

非常感谢您提供的任何帮助。

3 个答案:

答案 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);

});