#php #forms
#php #формы
Вопрос:
Я пытаюсь создать простое приложение для викторины со следующей структурой:
- 10 вопросов, каждый вопрос находится на новой HTML-странице. Это выглядит примерно так: http://howmuchtomakeanapp.com / структурно
-
Каждый ответ в вопросе представляет собой отправляемую форму, которая выглядит следующим образом (поэтому, если есть 3 ответа, все они встроены в свою собственную уникальную форму):
<form method="post" action="../question2/"> <button type="submit" class="icon-button"> <img src="../../img/placeholder.png"> </button> <input type="hidden" name="question" value="question1"> <input type="hidden" name="answer" value="Q1A"> </form>
-
У меня есть массив со значениями в PHP, и ответы будут связаны с этими значениями. Например: ответ Q1A стоит 5 баллов, Q1B будет стоить 3.
$var = [ "Q1A" => 5, "Q1B" => 3, "Q1C" => 0, "Q2A" => 2, "Q2B" => 3, ... ];
На данный момент у меня есть один PHP-файл (calculate.php ), в котором я хочу рассчитать общее количество баллов. Вот где я застрял. Я не совсем уверен, как сохранить мои ответы и, таким образом, связать их значения. Я не уверен, как я должен его структурировать.
Мой вопрос: каков мой наилучший способ сохранить эти значения и, в конце концов, получить общее количество баллов, чтобы показать пользователю. Я не могу получить четкое представление о том, как я должен выполнять свою связь на стороне сервера. Как мой calculate.php как выглядит?
Комментарии:
1. вы заинтересованы в том, чтобы сделать это только на PHP? js был бы подходящим
2. Я пытаюсь сохранить значения моих ответов скрытыми в PHP. Поэтому я предпочитаю просто попробовать его и на PHP. Это также было бы хорошим уроком для меня.
Ответ №1:
Если я получу ваш вопрос, вы можете сохранить свои значения в переменной php, а затем опубликовать его со страницы на страницу
Ответ №2:
Я решил это с помощью сеансов.
session_start();
if(isset($_POST['answer'])){
$_SESSION['question1'] = $_POST['answer'];}
Для каждой страницы я добавил новую переменную сеанса. В итоге я подсчитал счет на последней странице, соединив ответы с массивом баллов.