#php #jquery #ajax
#php #jquery #ajax
Вопрос:
В настоящее время я создаю веб-приложение, в котором есть один раздел, где пользователь видит диаграмму (которая была извлечена из базы данных диаграмм) и ему предлагается ответить на несколько вопросов. Как только пользователь отправит свой ввод, я хотел бы отобразить его / ее ответы плюс предлагаемые ответы на той же странице.
Я уже создал большую часть функциональности, но не уверен, какой лучший метод использовать для отображения ответов пользователей и предложенных ответов на одной странице. Прямо сейчас (показано ниже) я использую большой оператор if, который проверяет, была ли отправлена форма, и если да, показывает ответы, отправленные последним пользователем, и предлагаемые ответы. Если форма не была отправлена, отображается диаграмма.
Проблема в том, что после отправки формы (части инструкции else) пользователь все равно должен видеть диаграмму. Я думаю, что мог бы повторно отобразить диаграмму, сохранив идентификатор в $ _SESSION и извлекая его снова в операторе else, но это кажется неуклюжим. Может кто-нибудь порекомендовать, каким был бы наилучший способ сделать это (я открыт для использования jquery или ajax, хотя мне пришлось бы самому набирать скорость на них)?
if(!isset($_POST['submit']))
{
// some code to determine which chart to pull
if(mysql_num_rows($query))
{
while($result = mysql_fetch_array($query))
{
$dir = "images/"; // set directory variable
// open the directory
if($opendir = opendir($dir))
{
// display the chart to the user
}
}
// update db table to note that user has seen this problem
?>
<!-- ask for insights -->
<form action="charts.php" method="POST">
<input type="text" name="insight[]" placeholder="insight goes here!" />
<input type="text" name="insight[]" placeholder="more goes here!" />
<input type="text" name="insight[]" placeholder="don't give up yet" />
<input type="submit" name="submit" value="Submit data" />
</form>
<?php
}
else // throw an error if all questions have been done!
{
bringBacktogo($id, $p_type, $count);
}
}
else
{
// some code to show suggested chart insights
// some code to pull user answers from form above and show them
}
Комментарии:
1. Переместить ваш обработчик формы на другую страницу и использовать AJAX? Это может показаться чрезмерно упрощенным, но ваш вопрос довольно широкий.
Ответ №1:
попробуйте этот jquery и выполните все, что указано в targetPage.php
$("#targetDiv").load("targetPage.php",$("#form").serializeArray());
Комментарии:
1. Спасибо Sourav. Я не совсем использовал эту реализацию, но ajax и jquery были хорошей комбинацией для адресации.