2010-09-15 13 views
7

Este error solo aparece si trato de poner dos gráficos en la misma página. Ambos gráficos funcionan perfectamente si son los únicos en la página. En el momento en que agrego el segundo solo se carga el primero y aparece el error "Query Query for request id: 0".
Aquí está mi archivo js para el gráfico:Google Charts - "Falta la consulta para el id. De la solicitud: 0"

function drawChart(title, queryPage, divToFill) { 
var dataTab = null; 
var query = new google.visualization.Query(queryPage); 
var strSQL = "SELECT *"; 

query.setQuery(strSQL); 

query.send(processInitalCall); 

function processInitalCall(res) { 
    if(res.isError()) { 
     alert(res.getDetailedMessage()); 
    } else { 
     dataTab = res.getDataTable(); 

     // Draw chart with my DataTab 
     drawChart(dataTab); 
    } 
} 

function drawChart(dataTable) { 
    // Draw the chart 
    var options = {}; 
    options['title'] = title; 
    options['backgroundColor'] = "#8D662F"; 
    var colors = Array(); 
    var x = 0; 
    if(currentCampaignId >= 0) { 
     while(x < dataTab.getNumberOfColumns() - 2) { 
      colors[x] = '#c3c1b1'; 
      x++; 
     } 
     colors[x] = '#d2bc01'; 
    } 
    else { 
     colors[0] = '#c3c1b1'; 
    } 
    options['colors'] = colors; 
    options['hAxis'] = {title: "Week", titleColor: "white", textColor: "white"}; 
    options['vAxis'] = {title: "Flow", titleColor: "white", textColor: "white", baselineColor: "#937d5f", gridColor: "#937d5f"}; 
    options['titleColor'] = "white"; 
    options['legend'] = "none"; 
    options['lineWidth'] = 1; 
    options['pointSize'] = 3; 
    options['width'] = 600; 
    options['height'] = 300; 
    var line = new google.visualization.LineChart(document.getElementById(divToFill)); 
    line.draw(dataTab, options); 
} 
} 

Aquí es un recorte del archivo index.php:

<body> 
<script type="text/javascript"> 
google.load('visualization', '1', {'packages': ['table', 'corechart']}); 
google.setOnLoadCallback(function(){ 
drawChart("Water", "waterData.php", "water"); 
drawChart("Air", "airData.php", "air"); 
}); 

</script> 
<div id="water" style="text-align: center;"></div> 
<div id="air" style="text-align: center;"></div> 
</body> 

que arroja el error a la derecha en la línea query.send(processInitalCall);, sólo en el segundo Hora en que se llama. Tanto el waterData.php como el airData.php son idénticos, excepto el campo sig. Me di cuenta que había un campo llamado reqId y está configurado en 0.

¿Debo cambiar de alguna manera este reqId en estas clases?

Respuesta

12

Probablemente demasiado tarde, pero para cualquier persona interesada ...

Al cargar los datos del origen de datos, no será un parámetro GET en la solicitud - TQX - con un valor como: "reqId: 0 ". Debe devolver el mismo pedido en su respuesta.

De the docs:

reqId - [Requerido en la solicitud; La fuente de datos debe manejar] Un identificador numérico para esta solicitud. Esto se usa para que si un cliente envía solicitudes múltiples antes de recibir una respuesta, la fuente de datos puede identificar la respuesta con la solicitud adecuada. Envíe este valor nuevamente a la respuesta.

+0

estoy recibiendo este error y mi reqId partidos. –

+1

Me doy cuenta de que esto es antiguo, pero quería escribir para decir que esto me ayudó inmensamente y me llevó a darme cuenta de un problema que de otra manera no se podía afectar con mi uso de la biblioteca gviz python. ¡¡Gracias!! – mszaro

0

No tengo suficiente estado en StackOverflow para escribir un comentario, pero este hilo también me ha ahorrado una gran cantidad de tiempo. GRACIAS

google visualization multiple charts with own data queries

+0

Puede hacer preguntas y responder preguntas aquí, pronto ganará suficientes representantes como para dejar comentarios (aunque "gracias" no es un buen comentario; debería votar buenas respuestas) – Leeor

+0

Gracias, pero estoy no es "lo suficientemente mayor" para votar en StackOverflow tampoco! Además de decir "gracias", dejé un enlace a mi problema para resolver este problema. –

+0

Ahora estás, diviértete :) – Leeor

Cuestiones relacionadas