0

我正在尝试在我的网站上设置一个申请表,其中一个页面上有一个主要的大型申请表(parent.php),另一个页面上有一个较小的表单(child2.php),当用户填写他们的一些详细信息和提交较小的表格,他们将被带到较大的表格,并且他们输入的详细信息已经出现在较大表格的相应文本框中,旁边还有一些额外的框供他们填写(如果有道理的话!)

我可以让它工作,因为第二页上的文本框显示第一页上匹配文本框的值,但仅在设置值时。由于用户可以通过较小的表单或直接访问它来访问主应用程序表单,我需要它以便如果设置了值,则显示设置的值并且也将是输入到数据库中的值,或者如果值不是从较小的表单预先设置的,用户可以将他们的信息输入到主表单中,这就是发送到数据库的内容。我想我可能需要使用 ifisset 并尝试这样做,但无处可去。

为凌乱的代码和文本框的设置道歉,因为它们只是为了测试它,我仍然在掌握这一切,如果有人能帮助我/让我知道我是否走在正确的轨道上,我将不胜感激/完全关闭。提前致谢!

第 1 页 (parent.php)

<form action="child2.php" method="post" class="validate">
  <div>
  <input class="tb" type="text" name="fName" placeholder="first name" id="fName"      value="<?php $fName ?>" required/><br/>
  <br/>
  <input class="tb" type="text" name="sName" placeholder="surname" id="sName" value="<?php $sName ?>" required/><br/>
  <br/>
  <input class="tb" type="email" name="email" required placeholder="email address" id="email" value="<?php $email ?>" required/>
  <br/>
  <input class="tb" type="address" name="address" placeholder="address" value="<?php $address ?>" id="address" />
  <br/>


  <input id="submit" name="submit" type="submit" value="Submit">
  </div>
  </form> 

第 2 页 (child2.php)

<?php
  function renderForm($fName, $sName, $email, $address){ 
  ?>


<form action="" method="post" class="validate">

<label class="label">first name</label><input class="tb" type="text" id="fName"     name="fName" value="<?php if (isset($fName)) { echo $fName = $_REQUEST['fName'];} else {    echo "first name"; }?>"/> 
</br>
<label class="label">surname</label><input class="tb" type="text" id="sName"  name="sName" value="<?php if (isset($sName)) { echo $sName = $_REQUEST['sName'];} else {    echo "surname"; }?>"/>
</br>
<label class="label">email</label><input class="tb" type="email" id="email"  name="email" value="<?php if (isset($email)) { echo $email = $_REQUEST['email'];} else { echo "email"; }?>"/>
</br>
<label class="label">address</label><input class="tb" type="text" id="address"  name="address" value="<?php if (isset($address)) { echo $address = $_REQUEST['address'];} else { echo "address"; }?>"/>
</br>

4

2 回答 2

0

您正在寻找的是$_SESSION变量,这些变量在用户关闭浏览器或 Session 到期之前一直保持活动状态(我认为默认的 PHP 配置时间是 24 分钟......?)。这比出于时间目的将它们存储在数据库中要高效得多。

因此,您可以使用 etc. 设置变量,$_SESSION['fName'] = $_POST['fName'];然后稍后使用echo $_SESSION['fName'];etc.调用它们。

<?php session_start(); ?>在页面开头使用会话变量(在使用任何 HTML 之前)

于 2012-08-25T20:57:33.580 回答
0

正如 khanahk 所建议的,使用 SESSION 变量将完成您的工作。您正在考虑的解决方案的问题在于,只要您将值从一个页面传递到另一个页面,它就可以了,在这么多混乱之后也是如此。

所以,你应该改为,你应该使用这样的东西

session_start();

$email = $_SESSION['email'];

<label class="label">email</label><input class="tb" type="email" id="email"  name="email" value="<?php  echo $email; ?>"/>
于 2012-08-26T15:40:00.213 回答