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
}],

最初の部分に何か問題がありますか?オプションを選択すると、ハイチャートが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 で作成したデータベースからデータを取得し、ハイチャートに直接配置しようとしていますが、うまくいきません。これは私が受けなければならない試験でもあるので、あなたが私を助けてくれたらとても嬉しいです. どうもありがとうございました。

4

2 に答える 2

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 に答える
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 に答える