0

所以我有这个基本程序,它允许您收集用户输入并将其输出给用户,或者换句话说,显示在浏览器中,但也允许您使用 onClick 方法删除对象。所以这基本上是一个非常简单的 Todo 列表。

我的问题是如何收集信息并在页面上的行中显示每个先前的信息,而不是在刷新浏览器时一切都消失。我知道这样的东西对于数据库来说是理想的,但我试图保持简单,到目前为止我对数据库的了解还不够。我觉得 PHP 甚至 Javascript 都可以解决这个问题,但只是不适合我。也许 for 循环或 while 循环可以完成这项工作不确定,我可以使用一些帮助。谢谢。

<?php
if (isset($_POST["user"])) {
    $user_info = $_POST["user"];
}
?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Manage Todos</title>
</head>
<body>

    <form action="" method="post">

        <input type="text" name="user"></input>
        <input type="submit" value="Post">


    </form>

    <h1><a href="#" onclick="remove(this)"><?php echo $user_info;?> <?php echo $collect; ?></a></h1>


</body>
</html>
4

2 回答 2

1

您应该使用 session 来存储以前的变量,以便在刷新页面时再次显示。

将您的代码更改为: if (isset($_POST["user"])) { $_SESSION["user_info"] = $_POST["user"]; }

还将您更改<h1>为以下内容:

<h1><a href="#" onclick="remove(this)"><?php if (isset($_SESSION["user_info"])) echo $_SESSION["user_info"]; ?></a></h1>

或者您可以更改<h1>为:

<?php
  if (isset( $_SESSION["user_info"])) {
?>
    <h1><a href="#" onclick="remove(this)"><?php echo $_SESSION["user_info"]; ?></a></h1>
<?php
  }
?>

希望这会有所帮助。


更新

对不起,忘了告诉你应该先开始会话。这是正确的代码:

<?php
session_start();
if (isset($_POST["user"])) {
    $_SESSION["user_info"] = $_POST["user"];
}
?>

更新 2

假设您的 url 站点是 015_session_variable.php。

将您的代码更改为:

<?php
    session_start();
    if (isset($_POST["user"])) {
        $_SESSION["old_user_info"] = isset($_SESSION["new_user_info"]) ? $_SESSION["new_user_info"] : "";
        $_SESSION["new_user_info"] = $_POST["user"];
    }
    if (isset($_GET["remove"])) {
        if ($_GET["remove"] == "new")
            $_SESSION["new_user_info"] = "";
        else 
            $_SESSION["old_user_info"] = "";
    }
?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Manage Todos</title>
</head>
<body>

    <form action="015_session_variable.php" method="post">
        <input type="text" name="user" required></input>
        <input type="submit" value="Post">
    </form>

<?php
    if (isset($_SESSION["new_user_info"]) && $_SESSION["new_user_info"] != "") {
?>
    <h1><a href="#" onclick="removeMe('new');" title="Remove Me">Latest User : <?php echo $_SESSION["new_user_info"]; ?></a></h1>
<?php
    }
?>

<?php
    if (isset($_SESSION["old_user_info"]) && $_SESSION["old_user_info"] != "") {
?>
    <h1><a href="#" onclick="removeMe('old');" title="Remove Me">Previous User : <?php echo $_SESSION["old_user_info"]; ?></a></h1>
<?php
    }
?>
    <script>
        function removeMe(a) {
            window.open('015_session_variable.php?remove=' + a, '_self');
        }
    </script>
</body>
</html>

现在您有以下信息:

  1. 如何创建会话
  2. 如何在会话中存储变量
  3. 如何修改会话的变量

基本上你所需要的都已经在这段代码中了。尽可能地利用它们。祝你好运。

于 2013-07-22T04:43:53.053 回答
-1

HTML5 可以为您做到这一点。检查这个,

http://www.w3schools.com/html/html5_webstorage.asp

HTML5 在浏览器中提供离线存储。您也可以使用 cookie,但在您的情况下,网络存储是更好的选择。

于 2013-07-22T04:44:53.517 回答