Итак, я работал над Центром приложений 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
Используйте $_SESSION.
 – 
TiMESPLiNTER
19 Сен 2014 в 10:34
Храните их в $_SESSION от страницы к странице. - Смысл этого сообщества в том, чтобы показать вам, как придумать что-то самостоятельно, а не публиковать весь свой проект и ожидать, что кто-то сделает это за вас. Если бы вы были участником сообщества, все было бы по-другому, но вы только что зарегистрировались. Мы можем предоставить вам ресурсы, но фактическую работу вы должны делать сами. Можете ли вы рассказать нам, что вы уже пробовали и не работали? Все, что показывает, что вы пытались решить эту проблему самостоятельно.
 – 
VerySeriousSoftwareEndeavours
19 Сен 2014 в 10:49

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 в 10:46
1
Спасибо за вашу помощь. Я постараюсь и дам вам знать, если это работает или нет. Я отредактирую этот комментарий.
 – 
Chinmay Nagrale
19 Сен 2014 в 11:06
Нет проблем, рад, что смог помочь :)
 – 
Nick Coad
22 Сен 2014 в 02:47

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

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

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

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

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

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

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