Я немного не в этом разбираюсь, поэтому надеюсь, что у кого-то есть понимание. 🙂
Я пытаюсь обновить div с помощью AJAX. Вызов AJAX отправляет значение выпадающего выбора в файл PHP, который будет выполнять запрос pgsql для получения некоторых данных. Я прочитал в руководствах по RGraph, что эти данные должны быть отформатированы в формате JSON, чтобы RGraph мог их интерпретировать, а затем передавать их в JS, который запускает представления RGraph.
Этот вопрос может быть на самом деле 2 отдельных вопроса, но я все равно задам:
Постскриптум Нет, на этот раз я не делаю ошибку $ _POST / $ _ GET.
Любая помощь будет оценена. Спасибо!
РЕДАКТИРОВАТЬ 1: Получил это. На самом деле это было намного проще, чем я думал. Тем не менее, по-прежнему не оценивать должным образом. Любая помощь с тем, как RGraph захватывает объект JSON и отображает его в виде графика, и как использовать AJAX для обновления div с новым графиком?
Здесь есть несколько демонстрационных страниц AJAX на основе SVG:
Здесь есть страница документации 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);
Я думаю, что это охватывает все. Я, вероятно, что-то упустил, хотя.
Других решений пока нет …