【问题标题】:Form method - POST delete previous data表单方法 - POST 删除以前的数据
【发布时间】:2011-08-30 13:17:45
【问题描述】:

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

所以从一个表格中我得到了一个项目的标题:

//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

因此,如果我在if(isset($_POST['submit'])) 之前插入&lt;?php echo $product; ?&gt;,我可以从上一页看到我的变量,并且所有工作都可以找到。但是当我在邮件函数中插入相同的变量时,女巫在 if(isset($_POST['submit'])) 内,我不能邮寄那个变量,好像它是空的。

表单方法 POST 是否会删除所有以前的表单数据?因为,如果我将 Form1 方法更改为 GET 并将 $product = $_POST['productName']; 更改为 $product = $_GET['productName'];,我会在 Form2 提交后获取该变量,并且可以邮寄该变量。但我更喜欢使用 POST 方法,因为 URL 很好。

【问题讨论】:

    标签: php forms variables post methods


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 它是针对 Form2 而不是针对 Form1。有 2 页。
    猜你喜欢
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多