0

我有一个带有表格的网页。

当 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> 
4

5 回答 5

1

更好的方法将在 onkeyup 事件上使用 html5 存储,因此即使重新加载它仍将在本地存储中,但如果您不能仅在 php 中执行此操作,那么您需要使用 ajax 并在一段时间后调用 ajax 或 onkeyup..etc事件

于 2012-12-02T13:36:22.100 回答
0

任何时候你想使用$_POST,你都需要把它放在“form”标签调用的“action”文档中。在将表单数据发送到服务器之前,文档无法存储值。在操作文档“oplossing21-deel2.php”中放置 $_SESSION["email"] = $_POST["email"]; 和 $_SESSION["nickname"] = $_POST["nickname"];

于 2013-04-04T01:43:23.060 回答
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"]="";,这样当您再次重新加载表单时旧值将不存在。

于 2013-04-04T01:56:17.163 回答
0

您可以通过检查是否在页面加载期间设置了变量来做到这一点。例如:

PHP
$email = isset($_SESSION["email"]) ? $_SESSION["email"] : "";

并且在

HTML
<input type="text" value="<?php echo $email; ?>" />

因此,如果设置了会话变量,则将其内容插入该字段 - 如果没有,则插入一个空字符串。

于 2012-12-02T13:41:12.453 回答
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'];?>"/>
于 2015-07-09T07:01:39.410 回答