这是提交HTML表单时保留字段值的好方法吗?

时间:2010-09-01 12:00:15

标签: php forms submit

我有一个带有两个提交按钮的表单。

用户填写字段A并点击提交。

完成后,某些输入字段将填充数据。

在第一次提交之后,字段A上的值不应该消失。

我们如何在首次提交后保留此值?

我们是否应该在字段-A值属性上放置:

value="<?php echo isset($_POST['fieldA'])) ? $_POST['fieldA'] : ''; ?>"

表格提交给自己。

更新 - 其他详细信息: 这是一个在同一页面上有两个提交按钮的表单(有点说话)。 提交按钮A - 将根据输入字段获取一些数据,并填充该表单上的其他输入字段。 提交按钮B - 填写表单后,它将使用所有数据进行另一次提交。

这是一个非常简单的案例,这里没有框架。但是,我确实有某种MVP结构。

提前致谢, MEM

4 个答案:

答案 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肯定是最好的方法。可以在这里找到更多信息,或者在各种教程网站上找到 -

http://php.net/manual/en/reserved.variables.session.php

答案 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?>" />

如你所说,这应该有效。