根据用户输入的值多次调用相同的表单

时间:2011-06-20 11:00:25

标签: php forms

我正在开发一个旅行社网站,当用户预订旅行时他/她必须输入旅行相关的详细信息。这些信息以形式收集。用户还输入正在旅行的人数。

我的问题是,如何为每位旅行者收集相同的信息?基本上我需要根据同一个家庭的人数多次生成表单,这样我就可以捕获他们所有的数据。我该怎么做呢?

好吧有我的代码; plllz帮助我很困惑并尝试了很多东西来解决它; 提前谢谢

<form action = "insertpassenger.php" method = "POST">
  <center>Enter all the information below</center>
  <?php for ($i=0;$i<$pplno;$i++) : ?> 
     people<?php echo $i+1 ; ?> 
     <input type="text" name="cpr" size="9" value="<?php echo $cpr;?>" maxlength="9">CPR 
     <input type="text" name="pplno" size="30" maxlength="25">Number Of People 
     <input type="text" name="gcpr" size="9" maxlength="9">dad CPR 
     <input type="reset" value="clear" name="clear"> 
     <input type="submit" value="join" name="join"> 
  <?php endfor; ?> 
</form>

2 个答案:

答案 0 :(得分:0)

我个人会使用会话变量并倒数需要完成表单的次数。不幸的是,这会导致页面在每个表单输入后重新加载,但是这允许您拥有与用户请求一样多的表单,而不会在屏幕上向下滚动几页以在一个页面上创建所有表单。

在向浏览器显示任何内容之前,代码的开头是:

<?php 
session_start ();
?>

您收到循环计数的地方:

<?php 
if (!isset($_SESSION['yourAppName'])) 
}
    $_SESSION['yourAppName'] = $pplno;
} else {
    $_SESSION['yourAppName']--;
}
if ($_SESSION['yourAppName'] > 0) { 
    ?>
<form action=''>
    <input type="text" name="cpr" size="9" value="<?php echo $cpr;?>" maxlength="9">CPR 
    <input type="text" name="pplno" size="30" maxlength="25">Number Of People 
    <input type="text" name="gcpr" size="9" maxlength="9">dad CPR 
    <input type="reset" value="clear" name="clear"> 
    <input type="submit" value="join" name="join"> 
    <input type="submit" value="Proceed">
</form>
<?php 
} else {
    // code when all forms are filled in
}
?>

记得让你的表单返回同一页面。此代码仅用于指导您,不要指望它在没有编辑的情况下工作。 :)

答案 1 :(得分:0)

你的代码很多地跳进和跳出PHP。

只需将项目名称声明为数组条目,使用隐式或显式编号:

for ($i=0;$i<$pplno;$i++) : ?>  
 <input type="text" name="cpr[]" size="9" value="<?php echo $cpr[$i];?>" maxlength="9">CPR 
 <input type="text" name="pplno[]" size="30" maxlength="25">Number Of People 
 <input type="text" name="gcpr[]" size="9" maxlength="9">dad CPR 
 <input type="reset" value="clear[]" name="clear"> 
 <input type="submit" value="join[]" name="join"> 
<?php endfor; 

...或

for ($i=0;$i<$pplno;$i++) {  
 print "<input type=\"text\" name=\"cpr[$i]\" size=\"9\" value=\"$cpr[$i]\" maxlength="9">CPR";
 ....
}