0

JavaScript で Google Visualization API を使用して、データ テーブルを表示しています。問題は、必要な内容の変数を作成すればデータを表示できますが、AJAX から同じデータを取得するとテーブルを作成できないことです。

動作するコードは次のとおりです。

    function mostrarCuadro() {
          var datos = [["Nombre","Altura","Apariencia","Blablabla","Cualidad","Presencia","Puntualidad","Talento"],["L L",0,3,0,2,4,3,0],["M B",0,3,0,4,5,2,0],["S L",2,2,3,3,3,4,2]];
          datos = google.visualization.arrayToDataTable(datos);
          // Create and draw the visualization.
          visualization = new google.visualization.Table(document.getElementById('table_div'));
          visualization.draw(datos, null);
        }

それ以外の場合 (これは機能しません)、サーバー側として PHP ファイルを使用し、AJAX jQuery を使用して MySQL からデータを取得します。

function obtenerData(){
    document.getElementById("myDiv").innerHTML="Cargando...";
    $(function () 
    {
        $.ajax({                                      
        url: 'obtieneCuadro.php',           //the script to call to get data          
        data: "id=22755",                   //url argumnets
        dataType: 'html',                   //data format      
        success: function(data)         //on recieve of reply
        {
        var recibido = data;
        datos = google.visualization.arrayToDataTable(recibido);
          // Create and draw the visualization.
          visualization = new google.visualization.Table(document.getElementById('table_div'));
          visualization.draw(datos, null);
        } 
        });
    }); 
}

私のPHPファイルは次のように返します(変数「recibido」で取得します):

[["Nombre","Altura","Apariencia","Blablabla","Cualidad","Presencia","Puntualidad","Talento"],["L L",0,3,0,2,4,3,0],["M B",0,3,0,4,5,2,0],["S L",2,2,3,3,3,4,2]]

ご覧のとおり、2 つの変数の内容は同じですが、2 番目のケースでは機能しません。何が問題なのか、どうすれば機能させることができるのか、誰か教えてもらえますか?

ありがとうございました。


編集:問題を解決することができました。今は正常に動作しています...現在動作している正しいコードをここに示します:

    <script type="text/javascript">
function obtenerData(){
  document.getElementById("table_div").innerHTML="Cargando...";
  $(function () 
  {
    $.ajax({                                      
      url: 'obtieneCuadro.php',         //the script to call to get data          
      data: "id=22755",                 //url argumnets
      dataType: 'html',                 //data format      
      success: function mostrarCuadro(data)         //on recieve of reply
      {
          datosTabla = google.visualization.arrayToDataTable(JSON.parse(data));
          // Create and draw the visualization.
          visualization = new google.visualization.Table(document.getElementById('table_div'));
          visualization.draw(datosTabla, null);
      } 
    });
  }); 
}
</script>
4

1 に答える 1

0

私は問題を解決することができました、今それはうまく働いています...私はここに今働いている正しいコードを残します:

    <script type="text/javascript">
function obtenerData(){
  document.getElementById("table_div").innerHTML="Cargando...";
  $(function () 
  {
    $.ajax({                                      
      url: 'obtieneCuadro.php',         //the script to call to get data          
      data: "id=22755",                 //url argumnets
      dataType: 'html',                 //data format      
      success: function mostrarCuadro(data)         //on recieve of reply
      {
          datosTabla = google.visualization.arrayToDataTable(JSON.parse(data));
          // Create and draw the visualization.
          visualization = new google.visualization.Table(document.getElementById('table_div'));
          visualization.draw(datosTabla, null);
      } 
    });
  }); 
}
</script>

「JSON.parse(data)」でデータを解析する必要がありました。

于 2013-01-10T09:16:41.443 に答える