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>