表单方法 - POST删除以前的数据

时间:2011-05-22 10:47:22

标签: php forms variables post methods

我试图从页面到页面获取一些数据,然后邮寄它们。

所以从一种形式我得到一个项目的标题:

//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方法,因为网址很好。

1 个答案:

答案 0 :(得分:1)

您忘记为提交按钮命名,因此没有$ _POST ['submit']

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

编辑: 好的,$ _POST是数组,只在post请求后才有值。如果您发出另一个帖子请求或更改页面,则会删除以前的$ _POST值,并存储新请求中的这些值。 您可以存储会话中第一篇文章的数据,例如 -

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