Google Charts - "Отсутствует запрос на идентификатор запроса: 0" - PullRequest
7 голосов
/ 15 сентября 2010

Эта ошибка появляется, только если я пытаюсь разместить две диаграммы на одной странице.Обе диаграммы отлично работают, если они единственные на странице.В ту минуту, когда я добавляю вторую, загружается только первая, и я получаю ошибку «Отсутствует запрос для идентификатора запроса: 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);, только во второй раз, когда она вызывается.И waterData.php, и airData.php идентичны, за исключением поля sig.Я заметил, что есть поле с именем reqId, и оно установлено на 0.

Нужно ли как-то изменить reqId в этих классах?

Ответы [ 2 ]

12 голосов
/ 19 сентября 2011

Возможно, слишком поздно, но для всех, кто заинтересован ...

При загрузке данных из источника данных в запросе будет указан параметр GET - tqx - со значением наподобие: "reqId: 0". Вы должны вернуть тот же запрос в своем ответе.

С Документы :

reqId - [Требуется в запросе; Источник данных должен обрабатывать] Числовой идентификатор для этого запроса. Это используется для того, чтобы, если клиент отправляет несколько запросов до получения ответа, источник данных может идентифицируйте ответ с правильным запросом. Отправить это значение обратно в ответ.

0 голосов
/ 27 октября 2013

У меня недостаточно статуса в StackOverflow, чтобы написать комментарий, но эта тема также сэкономила мне огромное количество времени. СПАСИБО

Google визуализация нескольких графиков с собственными запросами данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...