Я предполагаю, что на данный момент у вас есть две страницы - страница, которая показывает форму, и страница, которая получает запрос POST и отображает график.
Будет ли небольшой jQuery, вы можете делать именно то, что вы хотите.
Сначала добавьте на страницу формы пустой div с id="results"
. Затем на странице построения графика поместите вывод, который вы хотите показать пользователю, в элемент div с тем же идентификатором.
Теперь присоедините обработчик onclick к кнопке отправки (или к отдельным частям формы, если вы хотите, чтобы она была более динамичной). Это должно сериализовать форму, отправить ее на страницу черчения, выхватить содержимое id="results"
div и вставить их в id="results"
div на странице формы.
Это будет отображаться пользователю в виде графика, появляющегося на странице всякий раз, когда он нажимает кнопку отправить.
Вот эскиз кода JQuery, который вам понадобится
$(function(){
// Submit form
// Get the returned html, and get the contents of #results and
// put it into this page into #results
var submit = function() {
$.ajax({
type: "POST",
data: $("form").serialize(),
success: function(data, textStatus) {
$("#results").replaceWith($("#results", $(data)));
}
});
};
$("form input[type=submit]").click(submit);
// I think you'll need this as well to make sure the form doesn't submit via the browser
$("form").submit(function () { return false; });
});
Редактировать
Просто чтобы прояснить вышесказанное, если вы хотите, чтобы форма перерисовывала график всякий раз, когда пользователь нажимает на любой из элементов управления, а не только когда пользователь нажимает кнопку отправки, добавьте еще несколько вещей, подобных этой
$("form input[type=text]").keypress(submit);
$("form input[type=checkbox], form select").change(submit)