0

我在使用 $.getJSON 时遇到了一些问题,我真的需要一些帮助,因为我不知道如何解决这个问题,而且我已经被困在这里好几天了。这是在 HTML 中选择选择选项时应生成高图的 js 文件:

$(document).ready(function() {
$("#paese").change(function(){
  var seriesOptions = [];
$.getJSON("prova.php", function(data) {
    seriesOptions = data;
});
var chart1 = new Highcharts.Chart({
chart: {
   renderTo: 'container',
   type: 'column',
   spacingLeft: 20,
   borderWidth: 1
},
....
series: [{
   name: 'Italia',
   data: seriesOptions
}],

第一部分有什么问题吗?当我选择一个选项时,似乎 highcharts 没有获取 php 文件,但我很确定它是正确的,这里是(PHP 文件):

<?PHP 
header("Content-Type: application/json; charset=UTF-8");
$conn = mysql_connect("localhost", "root");
$paese = null;
if(isset($_GET['paese'])) $paese = $_GET['paese'];
$ok = mysql_select_db("liberta", $conn);
$response = array();
$sql="SELECT `valori`.Punteggio FROM `valori` INNER JOIN `nazioni` ON `valori`.Nazione
= `nazioni`.ID WHERE `nazioni`.Nome = '$paese'";
$res=mysql_query($sql);
while($record=mysql_fetch_row($res)){
$response[] = intval("$record[0]");
}
mysql_close($conn);
print(json_encode($response));

我试图从我用 PHPmyadmin 创建的数据库中获取数据并将它们直接放入 highcharts 中,但它不起作用。如果你能帮助我,我会很高兴,因为这是我必须参加的考试。非常感谢。

4

2 回答 2

0

我建议熟悉有关预处理数据的文章http://docs.highcharts.com/#preprocessing

你需要有这样的结构:

{
     data:[1,2,3]
}

尝试更换

while($record=mysql_fetch_row($res)){
      $response[] = intval("$record[0]");
}

while($record=mysql_fetch_row($res)){
      $response['data'][] = intval($record[0]);
}
于 2013-06-11T08:33:25.447 回答
0

您的问题出在 javascript 部分。当您调用 $.getJSON 时,您提供的回调将在服务器响应时异步调用。如何在您的代码中以同步方式立即调用 Highcharts() 构造函数。在这一点上,它被称为 seriesOption 变量仍然等于 []。尝试从回调中调用构造函数,如下所示:

$.getJSON("prova.php", function(data) {
    var chart1 = new Highcharts.Chart(....
           series: [{
              name: 'Italia',
              data: data}])});
于 2013-06-11T08:42:48.923 回答