如果我尝试将两个图表放在同一页面上,则只会出现此错误。如果它们是页面上唯一的图表,则两个图表都能完美运行。我添加第二个只有第一个加载的那一分钟,我得到“请求ID为0的缺失查询”错误 这是我的图表的js文件:
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);
}
}
这是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>
它会在query.send(processInitalCall);
行发出错误,仅在第二次调用它时。除sig
字段外,waterData.php和airData.php都是相同的。我注意到有一个名为reqId
的字段,它设置为0。
我是否需要以某种方式更改这些类中的reqId
?
答案 0 :(得分:12)
可能为时已晚,但对于任何有兴趣的人......
从数据源加载数据时,请求中会有一个GET参数 - tqx - 其值如下:“reqId:0”。您必须在回复中返回相同的要求。
来自the docs:
reqId - [要求中要求;数据源必须处理]数字 此请求的标识符。如果客户端发送,则使用此方法 在收到响应之前有多个请求,数据源可以 用适当的请求识别响应。重新发送此值 回应。
答案 1 :(得分:0)
我在StackOverflow中没有足够的状态来写评论,但这个帖子也为我节省了大量的时间。 谢谢