如何将表单值传递到其他表单的下一页


How to pass a form value to next page in other form

如何将表单值传递到其他表单的下一页?

我在中有这个代码

<form action="confirm.php" method="post">
First name: <input type="text" name="firstname"><br>
Last name: <input type="text" name="lastname"><br>
Email: <input type="text" name="email">
</form>

现在我想在confirm.php中放入一些带有这些值的隐藏输入字段,我尝试了以下代码:

<form action="nextpage.php" method="post">
//some other input fields...
<input type="hidden" name="firstname" value="<?php $_POST['firstname']?>">
<input type="hidden" name="lastname" value="<?php $_POST['lastname']?>">
<input type="hidden" name="email" value="<?php $_POST['email']?>">
</form>

在其他2页中,以及在我想通过电子邮件发送所有这些字段的最后一页中,我尝试了PHP _SESSION,但没有成功,所以我认为这对我来说会更容易!

还有一件事我忘了说,在第二页(nextpage.php)的操作表单变量中,我引用了一个使用以下代码的文件:

<?php
header('Location: dear-'.$_POST['firstname'].'.php');
?>
<html>
<form>
  <input type="hidden" name="firstname" value="<?php echo $_POST['firstname']?>">
  <input type="hidden" name="lastname" value="<?php echo $_POST['lastname']?>">
  <input type="hidden" name="email" value="<?php echo $_POST['email']?>">
</form>
</html>

在这种情况下,如何在下一页上传递这些值(名字、姓氏和电子邮件)?我使用它是因为我想生成这样的页面www.site.com/dear-name.php

在confirm.php 中尝试此操作

<form action="nextpage.php" method="post">
//some other input fields...
<input type="hidden" name="firstname" value="<?php echo $_POST['firstname']?>">
<input type="hidden" name="lastname" value="<?php echo $_POST['lastname']?>">
<input type="hidden" name="email" value="<?php echo $_POST['email']?>">
</form>

您忘记了echo您的变量。

<input type="hidden" name="firstname" value="<?php echo $_POST['firstname']; ?>">

更新:

你有两个选择:

  1. 将数据存储到session,然后检索到另一个页面
  2. 使用query string传递数据。

    header('Location: dear-'.$_POST['firstname'].'.php?firstname='.$_POST['firstname'].'&lastname='.$_POST['lastname'].'&email='.$_POST['email']);
    

使用echo

<input type="hidden" name="firstname" value="<?php echo $_POST['firstname']; ?>">
<input type="hidden" name="lastname" value="<?php echo $_POST['lastname']; ?>">
<input type="hidden" name="email" value="<?php echo $_POST['email']; ?>">

如果这仍然不起作用,isset()您的后变量:

if(isset($_POST['firstname'],$_POST['lastname'],$_POST['email'])) {
   $firstname = $_POST['firstname'];
   $lastname  = $_POST['lastname'];
   $email     = $_POST['email'];
   echo '<input type="hidden" name="firstname" value="$firstname">';
   echo '<input type="hidden" name="lastname" value="$lastname">';
   echo '<input type="hidden" name="email" value="$email">';
}

在输入文本字段中,由于缺少echo,值为空。你需要添加echo来打印表单中的值。这样它就可以发送到另一个页面。

第二个选项是可以在每个页面的顶部使用session_start()。并将变量的值存储在会话中。

$_SESSION['name'] = "value_of_session"// in your case that is POST data

这可以在下一页中使用,您不需要包括hidden字段。

最重要的是你必须写

<?php session_start()  ?> // in each(you've three) page.
相关文章: