Я сделал именно это с системой психологического тестирования из 250 вопросов. Как только вы обдумаете это, это не так уж сложно. Решение, которое я использовал, заключалось в том, чтобы выводить в виде сложенных элементов div, а не беспокоиться о том, чтобы делать отдельные страницы и отправлять сообщения в сессию - это чище. Кнопка отправки действует на каждом элементе div, но она отправляет только последний элемент - функция показывает следующий элемент div и скрывает текущий элемент div при нажатии на каждой другой «странице». Используя переменные и PHP-математику, я могу настроить тест на разные комбинации - например, 1 страница из 250, 5 страниц из 50 и т. Д. Ваша самая сложная логика заключается в построении страницы с соответствующим количеством вопросов и создании уверен, что div'ы эффективно озаглавлены для работы с вашим скриптом show / hide. В моем случае я использую функциональность JQuery для показа / скрытия. Работает как шарм.
Поскольку это решение использует одну страницу, вам не нужно беспокоиться о том, что значения будут "забыты", когда они возвращаются назад или вперед. В моем случае я даже не позволяю пользователю вернуться назад, потому что я не даю им никакого пользовательского интерфейса для этого. Повторный щелчок по браузеру даст им предупреждение, что они покинут страницу. Однако вы можете использовать несколько различных методов, чтобы позволить им вернуться, включая пользовательский интерфейс, такой как кнопка, или настроить функцию возврата с помощью кнопки «Назад» браузера. Огромным побочным преимуществом является то, что загрузка практически ничего не значит, а изменения страницы происходят мгновенно для пользователя.