【问题标题】:HTML form doesn't reset after page refresh页面刷新后 HTML 表单不会重置
【发布时间】:2020-04-15 19:26:04
【问题描述】:

我在“主”页面(main.php)中填写了以下HTML 表单

<form action="sessions.php" method="post">
  <input type="" placeholder="Insert Database Name" name="dbName" id="dbName">
  <input type="" placeholder="Insert Server Name" name="serverName" id="serverName">
  <input type="" placeholder="Insert User Name" name="userName" id="userName">

  <button type="submit" name="Submit" id="sub">Connect</button>
</form>

当用户按下“提交”按钮(我将其设置为不刷新页面)时,表单数据会发布到另一个页面(sessions .php):

<?php
  session_start();

  $_SESSION['dbName'] = $_POST['dbName'];
  $_SESSION['serverName'] = $_POST['serverName'];
  $_SESSION['userName'] = $_POST['userName'];
  $_SESSION['password'] = $_POST['password'];
?>

然后,从另一个页面读取这些数据(graphs.php):

<?php 
  session_start();

  $serverName = $_SESSION['serverName'];
  $userName = $_SESSION['userName'];
  $password = $_SESSION['password'];
  $dbName = $_SESSION['dbName'];
?>

当我刷新页面时,表单数据被保留刷新页面后如何删除

【问题讨论】:

  • session_destroy()?
  • “保留”是什么意思?在给定的代码中,你不需要对这些变量做任何事情
  • @AnuragSrivastava 我希望在刷新页面之前保留表单数据。

标签: javascript php html session


【解决方案1】:

在处理完数据(存储在数据库中,执行计算等)之后使用session_destroy()。HTTP 是一种无状态协议,因此刷新页面不会更新会话变量,因为它是处理会话的 PHP 服务器,与页面刷新完全无关。

【讨论】:

  • 在第一页(main.php)中,当我提交数据时,会出现一个新按钮,单击时会打开一个新窗口,其中包含数据库中的一些数据(从最后一页获取它们(图表.php))。因此,如果我使用 session_destroy(),当再次单击该新按钮时,什么都不会发生(应再次提交表单)。我想以某种方式保留表单数据并仅通过页面刷新将其删除。
  • 然后使用javascript存储表单的状态,只提交所有数据。就像我说的,HTTP 是一种无状态协议。 PHP 服务器无法知道页面何时刷新。
【解决方案2】:

`嘿嘿用输入法上面的函数方法试试.. 创建一个简单的函数 在提交按钮中使用 onclick 方法并将 values=null 放在函数中 例如。

"function clearForm() {
   document.myform.reset();
                   }"

但是 session_destroy();用于删除整个会话。 和

“session_unset(); 将只删除会话中的变量 - 会话仍然存在。这里只有数据被截断。”

他们都是更好的选择。`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-10
    • 2013-09-09
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2023-03-20
    • 2016-09-04
    • 2013-04-30
    相关资源
    最近更新 更多