Итак, я работал над Центром приложений 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 а>
2 ответа
Я взглянул на Pastebin и думаю, что вижу проблему. Вы устанавливаете данные сеанса на той же странице, которую они заполняют (так что вы назначаете эти поля сеансу до того, как они будут заполнены). Вам нужно сделать это на странице 2, а не на странице 1. Итак, ваш шаблон выглядит следующим образом:
- Показать форму страницы 1.
- Пользователь заполняет его и нажимает "Отправить".
- Отправить пользователя на страницу 2.
- Страница 2 получает информацию, отправленную со страницы 1, сохраняет ее в сеансе.
- Страница 2 показывает вторую страницу формы.
- Пользователь заполняет страницу 2 и нажимает "Отправить".
- Отправить пользователя на страницу 3.
- Страница 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 завершается доступом ко всей информации с предыдущих страниц.
Изменить: этот ответ ранее читался: я бы рекомендовал иметь модель, содержащую все свойства формы. По мере заполнения каждой страницы заполняйте модель данными, введенными пользователем, а затем, когда они успешно заполнят форму, вы можете уничтожить данные сеанса.
Вы можете сохранить их в сеансе, например, передать свои данные со страницы 1 на страницу 2, а на странице 2 сделать следующее
$_SESSION['name'] = $_POST['name'];
Опять же, передайте свои данные со второй страницы на третью, а на третьей странице выполните следующие действия.
$_SESSION['yourself'] = $_POST['yourself'];
Это установит ваше имя и данные о себе в сеансе и будет доступно с любой страницы. Не забудьте включить session_start () вверху вашей страницы, если эта страница использует сессию.
Теперь вы можете получить доступ к этой переменной сеанса со страницы отправки, например,
echo $_SESSION['name'];
echo $_SESSION['yourself'];
Похожие вопросы
Связанные вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
$_SESSION
.$_SESSION
от страницы к странице. - Смысл этого сообщества в том, чтобы показать вам, как придумать что-то самостоятельно, а не публиковать весь свой проект и ожидать, что кто-то сделает это за вас. Если бы вы были участником сообщества, все было бы по-другому, но вы только что зарегистрировались. Мы можем предоставить вам ресурсы, но фактическую работу вы должны делать сами. Можете ли вы рассказать нам, что вы уже пробовали и не работали? Все, что показывает, что вы пытались решить эту проблему самостоятельно.