我有一个带有两个提交按钮的表单。
用户填写字段A并点击提交。
完成后,某些输入字段将填充数据。
在第一次提交之后,字段A上的值不应该消失。
我们如何在首次提交后保留此值?
我们是否应该在字段-A值属性上放置:
value="<?php echo isset($_POST['fieldA'])) ? $_POST['fieldA'] : ''; ?>"
?
表格提交给自己。
更新 - 其他详细信息: 这是一个在同一页面上有两个提交按钮的表单(有点说话)。 提交按钮A - 将根据输入字段获取一些数据,并填充该表单上的其他输入字段。 提交按钮B - 填写表单后,它将使用所有数据进行另一次提交。
这是一个非常简单的案例,这里没有框架。但是,我确实有某种MVP结构。
提前致谢, MEM
答案 0 :(得分:2)
一般来说,这样的事情是使用2种形式完成的,没有人 和GET方法,而不是POST。至少对于第一种形式 但是,由于你不能提出问题,所以不可能给你一个答案。
你走了:
的index.php
<form action=edit.php>Enter name: <input name="name"><input type=submit></form>
edit.php
<? $row = dbget("row","SELECT * FROM domains WHERE name = %s",$_GET['name']); ?>
<form method="POST" action="save.php">
Edit data for <?=htmlspecialchars($row['name'])?>:</br>
NS: <input name="ns" value="<?=htmlspecialchars($row['ns'])?>"><br>
Another: <input name="another" value="<?=htmlspecialchars($row['another'])?>"><br>
<input type="hidden" name="name" value="<?=htmlspecialchars($row['name'])?>"><br>
<input type=submit>
</form>
save.php
做任何你通常做的事情来保存信息
答案 1 :(得分:1)
我将这些值存储到$ _SESSION中,正如用户fabrik所说。这样,它们可以存储在整个表单提交过程中(假设它是多个页面)并在结束时一次性发布。
假设您正在使用某种提交系统并使用“下一步”按钮转到下一组表单,使用session_start()和$ _SESSION肯定是最好的方法。可以在这里找到更多信息,或者在各种教程网站上找到 -
答案 2 :(得分:1)
使用$ _POST可以做到这一点,有些人不喜欢三元运算符,但对我来说它运行得很好。虽然,有更好的方法来处理使用O.O.P的表单。您可以创建一个管理表单的类,并将数组传递给该类的构造函数(最终可以传递$ _POST),该类将根据提交的信息创建表单。您甚至可以使用相同的类来验证表单
我认为不需要使用$ _SESSIONS,因为这不是您需要在整个会话期间保留的信息..还是没有?
答案 3 :(得分:1)
试试这个:
<?php
$fieldA = (isset($_POST['fieldA']) ? $_POST['fieldA'] : '')
?>
// and in your form
<INPUT type="text" name="fieldA" id="fieldA" value="<?=fieldA?>" />
如你所说,这应该有效。