以HTML格式保留数据

时间:2010-10-21 16:04:43

标签: php html

我有一个HTML表单。假设我填写所有字段并提交它(PHP脚本在这里运行)。 然后我想使用浏览器的“后退”按钮返回表单。 我看到的是空的形式。 在使用浏览器的“后退”按钮返回到页面后,如何使输入的数据保留在页面上?

谢谢!

4 个答案:

答案 0 :(得分:3)

如果您使用浏览器的“后退”按钮,则您的浏览器负责重新填充表单数据。

答案 1 :(得分:1)

通常该功能由浏览器处理,但是如果您想“强制”字段始终预填充用户的数据,您可以将$ _POST数据存储在session variable中并使用该功能加载表单。

示例:

// submission page
session_start();
if(isset($_POST)){
  // save the posted data in the session
  $_SESSION["POST"] = $_POST;
}

然后在实际表单页面上,您可以检查会话数据是否存在。如果第一次加载表单,它将不会,但如果用户提交表单然后按下浏览器后退按钮,则不会:

// form page
session_start();
if(isset($_SESSION["POST"])){
  // previous POST data has been saved
  // build the form with pre-defined values from $_SESSION
  ...
} else {
  // no previous data
  // build the form without pre-defined values
  ...
}

请注意,在输出任何HTML之前,您必须先调用session_start()

答案 2 :(得分:1)

将值存储在会话中

session_start();

//form so that you have all the potential forms in a single session array
//form_1 to identify the form in question

if(!empty($_POST)){
$_SESSION['forms']['form_1'] = $_POST;//if this is for the public internet, then I would really consider making sure that the posted data matches the received data... (and that its comming from YOUR form), which is way too long to post here...
}

然后在表单页面

<input name="flowers" value="<?php echo if(isset($_SESSION['forms']['forms_1']['flowers'])){ echo htmlspecialchars($_SESSION['forms']['forms_1']['flowers']);} ?>" />
显然,上面的内容可以简化,但为了一个例子,这种方式更好。

(确保最终清除旧的表单数据)

答案 3 :(得分:0)

您可以将数据存储在会话中,并使用PHP会话重新填充它。您应该创建一个单独的后退按钮,将您带到上一页。

示例:

存储数据:

$_SESSION['data'] = $_POST['item1'];

在HTML表单中:

<input type="text" name="someinput" value="<?=$_SESSION['data']?>" />