Метод формы - POST удалить предыдущие данные - PullRequest
1 голос
/ 22 мая 2011

Я пытаюсь получить некоторые данные со страницы на страницу, а затем отправить их по почте.

Итак, из одной формы я получаю название элемента:

//Form1
<form  class="orderFormFields" method="post" action="order">
<input type="hidden" name="productName" value="<?php the_title(); ?>">
<input class="oButton" value="Order" type="submit"/>
</form>

А потом еще одна форма (следующая страница) с другими полями, которые мне нужно отправить по почте:

<?php 
//getting a variable from previous form
$product = $_POST['productName'];

if(isset($_POST['submit'])) 
{
$name = $_POST['order_name'];
$mail = $_POST['email'];
$phone = $_POST['mobile'];
$date = $_POST['date'];
$comment = $_POST['comment'];



//simple mail function goes here

$done = true;
}

?>

//Form2 goes here

Так что, если я вставлю <?php echo $product; ?> до if(isset($_POST['submit'])), я смогу увидеть свою переменную с предыдущей страницы, и все работы просто найдутся. Но когда я вставляю ту же самую переменную в почтовую функцию, которая находится внутри if(isset($_POST['submit'])), я не могу отправить эту переменную по почте, кажется, что она пуста.

Удаляет ли метод формы POST все предыдущие данные формы? Потому что, если я изменю свой метод Form1 на GET и $product = $_POST['productName']; на $product = $_GET['productName'];, я получу эту переменную после отправки Form2 и смогу отправить ее по почте. Но я бы предпочел использовать метод POST из-за красивого URL.

1 Ответ

1 голос
/ 22 мая 2011

Вы забыли назвать свою кнопку отправки, чтобы не было $ _POST ['submit']

<input class="oButton" value="Order" type="submit" name="submit" />

EDIT: Хорошо, $ _POST является массивом и имеет свои значения только после запроса post. Если вы сделаете другой пост-запрос или измените страницу, предыдущие значения $ _POST будут удалены, и они из нового запроса будут сохранены. Вы можете хранить данные из первого поста в сеансах, например -

$_SESSION['postData']['form1'] = $_POST;
...