我正在使用带有 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);
}
在另一种情况下(不起作用),我使用 AJAX jQuery 使用 PHP 文件作为服务器端从 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]]
如您所见,这两个变量具有相同的内容,但在第二种情况下它不起作用。谁能告诉我有什么问题,我怎样才能让它工作?
谢谢你。
编辑:我已经设法解决了这个问题,现在它工作正常......我在这里展示了现在正在工作的正确代码:
<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>