我有一个带有表单的网页。
当de _POST方法被激活时,我使用这个php代码将表单的值放在会话中:
<?php session_start(); ?>
<?php
$dump ='';
$dump .='<!DOCTYPE html>
<html>
<head></head>
<body>';
$dump .='
<h1>Deel 1: registratiegegevens</h1>
<form action="oplossing21-deel2.php" method="post">
<ul>
<li> <label for="email">email: </label><input type="text" name="email" id="email" value="'.$email.'" />
</li>
<br />
<li> <label for="nickname">nickname: </label><input type="text" name="nickname" id="nickname" />
</li>
<br />
<li> <input type="submit" value ="volgende" />
</li>
</ul>
</form>
';
if ($_POST) {
// Store our name in the session array
$_SESSION["email"] = $_POST["email"];
$_SESSION["nickname"] = $_POST["nickname"];
}
$email = isset($_SESSION["email"]) ? $_SESSION["email"] : "leeg";
$dump .='
</body>
</html>';
echo $dump;
?>
现在我想知道如何确保如果我重新加载页面(F5或cmd + r),那么字段将填入最后输入的值。所以我提交表单,然后我转到下一页,但是当我回来时,我希望输入字段用最后的已知值填充。有人可以帮我弄这个吗?我已经尝试用isset() - 函数做一些事情,但我不知道从这里去哪里。
在第二页上,我只是将会话放在html文件上,并且有效..
<li>'.$_POST["email"].'</li>
答案 0 :(得分:1)
更好的方法是在onkeyup事件上使用html5存储,所以即使重新加载它仍然会在本地存储中,但是如果你不能在那个时候只用php那么你需要使用ajax并在一段时间后或onkeyup上进行ajax调用..etc事件
答案 1 :(得分:0)
您可以通过检查是否在页面加载期间设置变量来执行此操作。例如:
PHP
$email = isset($_SESSION["email"]) ? $_SESSION["email"] : "";
并在
HTML
<input type="text" value="<?php echo $email; ?>" />
因此,如果设置了session-variable,它的内容将被插入到字段中 - 如果没有,则插入一个空字符串。
答案 2 :(得分:0)
任何时候你想使用$ _POST,你需要把它放在“form”标签调用的“action”文件中。在将表单数据发送到服务器之前,文档无法存储值。在操作文档“oplossing21-deel2.php”中放置$ _SESSION [“email”] = $ _POST [“email”];和$ _SESSION [“nickname”] = $ _POST [“nickname”];
答案 3 :(得分:0)
在表单方法文件oplossing21-deel2.php
中使用<?php session_start(); ?>
,然后执行
$_SESSION["email"] = isset($_POST["email"]) ? $_POST["email"] : "";
它会将电子邮件值保存到会话中。
当您返回表单文件时
$email = isset($_SESSION["email"]) ? $_SESSION["email"] : "";
<input type="text" value="<?php echo $email; ?>" />
此外,当您成功使用表单方法文件中的值时,请清除会话$_SESSION["email"]="";
,以便在重新加载表单时不会出现旧值。
答案 4 :(得分:0)
在表单提交的页面上执行类似的操作
session_start();
$_SESSION['data'] = $_POST['data'];
$_SESSION['data_another'] = $_POST['data_another'];
并且您可以在任何类似的地方访问这些会话变量
session_start(); // this should be at the top of the page before any html load
<input type="text" name="name" value="<?php echo $_SESSION['data'];?>"/>