Сохранять значения из нескольких форм в $ _POST

0

Я пытаюсь сохранить значения из нескольких форм в переменной $_POST. Формы находятся на разных страницах и из того, что я могу понять из теста, который я сделал, когда я отправляю значения из формы, они "перезаписывают" значения, которые уже в $_POST.

Вот пример того, что я пытаюсь сделать:

Страница 1 - форма 1

<?php 
session_start();
?>

<form method="post" action="page2.php">
First name : <input type="text" name="firstName" required ><br/><br/>
Last name : <input type="text" name="lastName" required ><br/><br/>
<input type="submit">
</form>

Страница 2 - форма 2

<?php 
session_start();
?>

<form method="post" action="page3.php">
Age : <input type="text" name="age" required ><br/><br/>
City : <input type="text" name="city" required ><br/><br/>
<input type="submit">
</form>

Page 3 - результаты

<?php 
session_start();

echo $_POST['firstName'].'<br/>';
echo $_POST['lastName'].'<br/>';
echo $_POST['age'].'<br/>';
echo $_POST['city'].'<br/>';
?>

Последняя страница показывает мне только "возраст" и "город". Значения из первой формы на стр. 1 теперь не определены. Вот пример полученного результата:

Notice: Undefined index: firstName on line 4

Notice: Undefined index: lastName on line 5

65
Нью-Йорк

Теги:
post

3 ответа

4

в page2.php поместите это

<input type="hidden" name="firstname" value="<?=$_POST['firstname']?>">
<input type="hidden" name="lastname" value="<?=$_POST['lastname']?>">
  • 0
    Это хорошая идея ! Я не думал об этом, большое спасибо. Я все еще борюсь за изучение PHP, спасибо за совет!
  • 0
    Я просто попробовал, и это не сработало. Вот результат, который я получаю: $ _POST ['firstname'] $ _POST ['lastname'] 65 Нью-Йорк
Показать ещё 7 комментариев
1

Вы также можете использовать переменные сеанса:

//Страница 1

<?php
      session_start();
      $_SESSION['user'] = array();
      $_SESSION['user']['firstName'] = $_POST['firstName'];
      $_SESSION['user']['lastName'] = $_POST['lastName'];
?>

//Страница 2

<?php
      session_start();
      $_SESSION['user']['age'] = $_POST['age'];
      $_SESSION['user']['city'] = $_POST['city'];
?>

//Результат

<?php
          session_start();
          echo $_SESSION['user']['firstName'];
          echo $_SESSION['user']['lastName'];
          echo $_SESSION['user']['city'];
          echo $_SESSION['user']['age'];
    ?>
0

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

<form method="post" action="page2.php">

Это страница действий как page2.php.

<form method="post" action="page3.php">

Здесь вы отправляете данные на страницу3.php

И вы пытаетесь получить доступ

echo $_POST['firstName'].'<br/>';
echo $_POST['lastName'].'<br/>';

в page3.php, который вы перешли на страницу2.php. Определенно это не будет работать, как вы можете получить доступ к значениям, представленным через форму на странице действий лишь формы.

  • 0
    Это правда, я понимаю, почему это не работает сейчас. Как лучше всего хранить значения из форм, расположенных на разных страницах, и использовать их на любой странице?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню