使用PHP将表单数据从一个网页传递到另一个网页

时间:2011-08-02 14:49:04

标签: php javascript jquery forms

我在这里发现了几个类似的问题但是从答案中我并没有全面了解应该如何工作。

我在页面中有一个订阅表单:

<form method="post" action="index.php/register"> 
<fieldset> 
<input type="text" id="first_name" name="first_name" /> 
<input type="text" id="last_name" name="last_name" />
<input type="text" id="email" name="email" />
<input type="text" id="address" name="address" /> 
<input id="submit" type="submit" value="&gt;&gt;" /> 
</fieldset> 
</form>

当用户单击提交按钮时,将指向具有完整注册表单的页面,其中我需要填充从前一页面表单发送的数据的少量字段。这是第二页形式的几个字段的预览:

<form id="register" name="form1" method="post" action="send_contact.php">
<fieldset>  
<li><label>*First Name</label>
<input type="text" id="first_name" name="first_name" />
</li>

<li>
<label>*Last Name</label>
<input type="text" id="last_name" name="last_name" />
</li>

<li>
<label>*Email</label>
<input type="text" id="email" name="email" />
</li>

<li>
<label>*Confirm Email</label>
<input type="text" id="confirm-email" name="confirm_email" />
</li>

<li>
<label>Street Address</label>
<input type="text" id="address" name="address" />

<li class="full-width">
<input id="submit" type="submit" value="Register" />                    
</li>

</fieldset>
</form> 
php不是我的强项,所以如果你能更详细地回答对我来说很棒。

谢谢!

4 个答案:

答案 0 :(得分:2)

我会说出于安全原因,请不要像人们描述的那样使用Get方法“$_GET[]”,并保留POST。

您需要在注册/页面上执行的操作是获取使用POST方法传递的所有值并将其填充到HTML中。所以第二种形式应该是这样的:

    <form id="register" name="form1" method="post" action="send_contact.php">
    <fieldset>  
    <li><label>First Name</label>
    <input type="text" id="first_name" name="first_name" value="<?=$_POST[first_name]?>" />
    </li>

    <li>
    <label>*Last Name</label>
    <input type="text" id="last_name" name="last_name" value="<?=$_POST[last_name]?>" />
    </li>

    <li>
    <label>*Email</label>
    <input type="text" id="email" name="email" value="<?=$_POST[email]?>" />
    </li>

    <li>
    <label>*Confirm Email</label>
    <input type="text" id="confirm-email" name="confirm_email" />
    </li>

    <li>
    <label>Street Address</label>
    <input type="text" id="address" name="address" value="<?=$_POST[address]?>" />

    <li class="full-width">
    <input id="submit" type="submit" value="Register" />                    
    </li>

    </fieldset>
    </form> 

上面,我使用简写版的“echo”和php标签,如果你没有在php.ini下启用,请将“”更改为"; ?>。此外,脚本不会填充“确认”电子邮件,因为我认为您希望用户重新键入该电子邮件。

应该这样做。

答案 1 :(得分:0)

基本上有两种方法

  1. 将第一个表单的值存储在cookie中,并且进程代码可以从cookie中检索值

  2. 使表单操作“获取”,以便将数据传递到下一页。

答案 2 :(得分:0)

<form method="post" action="register.php"> 
<fieldset> 
<input type="text" id="first_name" name="first_name" /> 
<input type="text" id="last_name" name="last_name" />
<input type="text" id="email" name="email" />
<input type="text" id="address" name="address" /> 
<input id="submit" type="submit" value="&gt;&gt;" /> 
</fieldset> 
</form>

register.php

<form id="register" name="form1" method="post" action="send_contact.php">
<fieldset>  
<li><label>*First Name</label>
<input type="text" value="<?php echo $_POST['first_name'];?>" id="first_name" name="first_name" />
</li>

<li>
<label>*Last Name</label>
<input type="text" value="<?php echo $_POST['last_name'];?>" id="last_name" name="last_name" />
</li>

<li>
<label>*Email</label>
<input type="text" value="<?php echo $_POST['email'];?>" id="email" name="email" />
</li>

<li>
<label>*Confirm Email</label>
<input type="text" id="confirm-email" name="confirm_email" />
</li>

<li>
<label>Street Address</label>
<input type="text" value="<?php echo $_POST['address'];?>" id="address" name="address" />

<li class="full-width">
<input id="submit" type="submit" value="Register" />                    
</li>

</fieldset>
</form>

最后根据您的意愿在send_contact.php服务

答案 3 :(得分:0)

您可以使用处理第一个表单提交的页面中第一个表单中的$ _POST值,并将其打印为新表单:

<?php
  echo '<input type="text" id="email" name="email" value="' . htmlentities($_POST['email']) . '"/>
?>