PHP - сложная многостраничная форма - PullRequest
1 голос
/ 29 января 2012

Мне нужно разработать форму, которая охватывает несколько страниц, но требует только одного сценария PHP. На первой странице посетителям представлен ряд флажков. В зависимости от их выбора дополнительные страницы должны отображаться в определенном порядке, а затем на закрывающей странице. Каждая страница содержит скрытый ввод, идентифицирующий, какой это номер страницы. То, что я пока имею, это:

if(!isset($currentPage)) {
  echo $firstPage;
}
else {
  echo nextPage($currentPage);
}

function nextPage($lastPage) {
  switch($lastPage) {
    case '0':
      if(isset($opt1)) {
        return $page1;
      }
      else if(isset($opt2)) {
        return $page2;
      }
    case '2':
      if(isset($opt3)) {
        return $page3;
      }
    case '3':
    case '1':
      return $page4;
  }
}

Приведенный выше код правильно определяет, отображать ли page1, page2 или page3 после начальной страницы, но после этого, независимо от того, какие другие варианты были выбраны, он всегда направляет посетителя на последнюю страницу (page4). Что мне не хватает? Или я все об этом ошибся?

1 Ответ

1 голос
/ 29 января 2012

Я бы предложил хранить ответы в переменной сеанса до тех пор, пока пользователь не завершит сюрвери.

Поэтому поместите

session_start();

поверх сценария перед выводом любого текста

и затем всякий раз, когда пользователь отправляет форму, он переходит на следующую страницу и делает следующее:

$_SESSION['answers'] = array_merge($_POST, $_SESSION['answers']);

Это будет хранить ответы в одном массиве, который вы сможете использовать, когда пользователь завершит опрос.

* подсказка: поскольку используется слияние массивов, убедитесь, что переключатели на разных страницах имеют разные имена.Как: вопрос_1, вопрос_2 .. *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...