Использование RGraph для опроса данных из БД Postgres и обновления с использованием AJAX / JSON

Я немного не в этом разбираюсь, поэтому надеюсь, что у кого-то есть понимание. 🙂

Я пытаюсь обновить div с помощью AJAX. Вызов AJAX отправляет значение выпадающего выбора в файл PHP, который будет выполнять запрос pgsql для получения некоторых данных. Я прочитал в руководствах по RGraph, что эти данные должны быть отформатированы в формате JSON, чтобы RGraph мог их интерпретировать, а затем передавать их в JS, который запускает представления RGraph.

Этот вопрос может быть на самом деле 2 отдельных вопроса, но я все равно задам:

  1. Есть ли стандартный способ получить результаты запроса в PHP и вывести их в формате JSON?
  2. Где бы я хотел вызвать JS, который использует данные JSON? Я попытался жестко закодировать некоторые исходные данные, но графики, похоже, не отображаются. Тем не менее, я знаю, что jQuery правильно выполняет вызовы AJAX, потому что я вижу обновление div (с промежуточным сообщением «Загрузка …», а затем обратно в пустое значение, указывающее мне нулевой ответ), так что я думаю, что ‘ Я просто не смотрю на это должным образом.

Постскриптум Нет, на этот раз я не делаю ошибку $ _POST / $ _ GET.

Любая помощь будет оценена. Спасибо!

РЕДАКТИРОВАТЬ 1: Получил это. На самом деле это было намного проще, чем я думал. Тем не менее, по-прежнему не оценивать должным образом. Любая помощь с тем, как RGraph захватывает объект JSON и отображает его в виде графика, и как использовать AJAX для обновления div с новым графиком?

1

Решение

Здесь есть несколько демонстрационных страниц AJAX на основе SVG:

  1. AJAX getString () демо
  2. AJAX getCSV () демо
  3. AJAX getJSON () демо
  4. AJAX getNumber () демо

Здесь есть страница документации JSON:

https://www.rgraph.net/svg/docs/the-svg-ajax-functions.html

И пример кода из этого:

<script>
GLOBALS = {};

function draw()
{
RGraph.SVG.AJAX.getJSON('/ajax/getdata.html?json', function (json)
{
if (GLOBALS.bar) {
RGraph.SVG.clear(GLOBALS.bar.svg);
}

GLOBALS.bar = new RGraph.SVG.Bar({
id: 'chart-container',
data: json.data,
options: {
// Add your own options to configure the chart
}
}).draw();
});
}

draw();
</script>

Если вы последуете этому примеру, создайте на своем веб-сайте страницу, которая получает данные из вашей базы данных и выводит их так, как это делает эта страница:

https://www.rgraph.net/getdata.html?json

Обратите внимание, что на этой странице нет вывода HTML — только JSON.

Затем вы можете получить эту страницу с помощью функции RGraph.SVG.AJAX.getJSON (), как это делается в коде выше, — со своей веб-страницы, на которой есть диаграмма — например, foo.html.
Таким образом, foo.html — это то, что будет содержать приведенный выше код RGraph.

И если вы хотите, чтобы это повторилось, вы можете добавить таймер, чтобы последующие выборки обновляли его:

setTimeout(function ()
{
draw();
}, 1000);

Я думаю, что это охватывает все. Я, вероятно, что-то упустил, хотя.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]