我有两个表单,因此有两个不同的提交按钮,用于一个页面(用于将员工添加到公司数据库的页面)。
第一个提交涉及提交用户名(通过命令行程序自动填写的姓名和教职员工)。显然,我想保留这些信息,并在填写第二种表格所需的信息时将其显示给用户。这很好。
问题是第二种形式是否有错误。添加失败并显示错误消息,但 first 表单中的所有信息都将被清除。
如果提交了第一个表单(没有错误),则设置下面的会话变量:
$_SESSION['name'] = $info['displayName'];
$_SESSION['faculty'] = $info['ou'];
$ownerId = trim(mysql_prep($_POST['ownerId']));
$_SESSION['ownerId'] = $ownerId;
但是如果提交了第二个表单,那么这些变量就会被删除。我的理解是,这是因为第一种形式是不技术上已经提交了。但是,再一次,这不是会话变量的重点 - 不是要消灭吗?
编辑:也许添加我取消设置所有会话变量会很有帮助,但只有在第二个表单提交时没有错误。虽然我不认为这是非常相关的
答案 0 :(得分:3)
我可以想到两种方法
if($POST['form_name'] == 'form1')
{
//set my session variables
}
else //for the second form
{
//do something else
//then session is intact
}
我曾经在表单中放置一个隐藏字段来存储表单的名称。有些人使用提交按钮的名称。
另一种方法是重新填充另一种形式,它仍在考虑如何在不使用一个按钮的情况下进行两种形式
<form name="form1" action="POST" action="xxx">
<input type="text" values="<?php print($_POST['firstform_val_1']) ?>" name="val_1" />
</form>
<form name="form2" action="POST" action="xxx">
//these hidden fields preserve the formal values and make sure they are reposted in this second form
<input type="hidden" name="firstform_val_1" value="<?php print($_POST['firstform_val_1']) ?>" />
<input type="hidden" name="firstform_val_2" value="<?php print($_POST['firstform_val_2']) ?>" />
<input type="text" name="secondform_val1" />
<input type="submit" name="form2" />
</form>
这就是主意。我只是从楼上得到这个,没有经过测试。在第一种形式中,先前的值由第二种形式的隐藏字段中重复的值重新填充
祝你好运
答案 1 :(得分:0)
如果表单是由php页面生成的,您可以使用以下脚本自动填充先前提交的任何字段。
启用短标记;
<input type="text" name="firstName" value="<?=isset($_POST['firstName'])?$_POST['firstName']:'';?>" ></input>
没有短标签;
<input type='text' name="firstName" value="
<?php
$value=isset($_POST['firstName'])?$_POST['firstName']:'';
echo($value);
?>
"></input>