Итак, я работал над Центром приложений PHP (Форма), и я в чем-то застрял.

У меня есть 3 страницы формы и 1 страница sumbit. Все находятся в расширении .php. Итак, я хочу взять <input name="name" type="text" placeholder="Name" required> со страницы 1 и:


на страницу отправки.

Я могу взять значения Textarea и Textbox со страницы 3, чтобы отправить страницу через <?php echo $_POST['somethinghere']?>. Но я не могу брать значения с Первой и второй страницы.

Вот ссылки на мои php-коды со style.css (pastebin.com): - http://pastebin.com/81vgHh5H

0
Chinmay Nagrale 19 Сен 2014 в 10:33

2 ответа

Лучший ответ

Я взглянул на Pastebin и думаю, что вижу проблему. Вы устанавливаете данные сеанса на той же странице, которую они заполняют (так что вы назначаете эти поля сеансу до того, как они будут заполнены). Вам нужно сделать это на странице 2, а не на странице 1. Итак, ваш шаблон выглядит следующим образом:

  1. Показать форму страницы 1.
  2. Пользователь заполняет его и нажимает "Отправить".
  3. Отправить пользователя на страницу 2.
  4. Страница 2 получает информацию, отправленную со страницы 1, сохраняет ее в сеансе.
  5. Страница 2 показывает вторую страницу формы.
  6. Пользователь заполняет страницу 2 и нажимает "Отправить".
  7. Отправить пользователя на страницу 3.
  8. Страница 3 получает информацию, отправленную со страницы 2, сохраняет ее в сеансе.

И так далее...

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

Примере:

Страница 1:

<form action="page2.php">
    <input type="text" name="page1text"/>
    <input type="submit"/>
</form>

Страница 2:

<?php
    $_SESSION['page1text'] = $_POST['page1text'];
?>
<form action="page3.php">
    <input type="text" name="page2text"/>
    <input type="submit"/>
</form>

Страница 3:

<?php
    $_SESSION['page2text'] = $_POST['page2text'];
?>
<form action="page4.php">
    <input type="text" name="page3text"/>
    <input type="submit"/>
</form>

Страница 4:

<?php
    $_SESSION['page3text'] = $_POST['page3text'];
?>
<ul>
    <li>Page 1: <?php echo $_SESSION['page1text'] ?></li>
    <li>Page 2: <?php echo $_SESSION['page2text'] ?></li>
    <li>Page 3: <?php echo $_SESSION['page3text'] ?></li>
</ul>

Как видите, страница 4 завершается доступом ко всей информации с предыдущих страниц.

Изменить: этот ответ ранее читался: я бы рекомендовал иметь модель, содержащую все свойства формы. По мере заполнения каждой страницы заполняйте модель данными, введенными пользователем, а затем, когда они успешно заполнят форму, вы можете уничтожить данные сеанса.

0
Nick Coad 19 Сен 2014 в 06:46

Вы можете сохранить их в сеансе, например, передать свои данные со страницы 1 на страницу 2, а на странице 2 сделать следующее

$_SESSION['name'] = $_POST['name'];

Опять же, передайте свои данные со второй страницы на третью, а на третьей странице выполните следующие действия.

$_SESSION['yourself'] = $_POST['yourself'];

Это установит ваше имя и данные о себе в сеансе и будет доступно с любой страницы. Не забудьте включить session_start () вверху вашей страницы, если эта страница использует сессию.

Теперь вы можете получить доступ к этой переменной сеанса со страницы отправки, например,

echo $_SESSION['name'];
echo $_SESSION['yourself'];
0
user4055288 19 Сен 2014 в 07:24