【问题标题】:Check when page changed检查页面何时更改
【发布时间】:2010-02-16 04:26:04
【问题描述】:

我是新来的,也是新手程序员,对 PHP 不是很熟悉。我什至不知道我在构建应用程序时使用的一些技术的名称。对此我很抱歉,但我会尽力解释。

所以我现在正在使用 PHP / AJAX 构建一个网络应用程序,并且我已经到了一些用户(拥有自己的权限)拥有自己的主页的地步,当有新的事情发生时,它会向他们显示通知在系统中。我想我使用了 url 中的“get”方法来确定用户现在所在的页面。

这是一个简单的说明:

  1. 具有“员工”权限的用户登录,然后重定向到他的主页。 (http://localhost/apps/staff.php)

  2. 他打开通知页面,url变成了:“http://localhost/apps/staff.php?cmd=notification

我不知道该技术的名称,但我是这样做的:我使用“$_GET['cmd']”获取 cmd 值,然后将其传递给检查要显示的页面的函数。

问题是,当用户离开页面时,我想删除通知表的内容并将其移动到历史记录表,这样只会显示最新的通知。所以我想我需要知道用户何时离开(移动)到另一个页面,或者 cmd 值何时发生变化。我的问题是,如何?

附言。我仍然是大学的学生,所以这是我的作业。请给我指出一个方向和/或线索,而不是为我编写代码(欢迎提供有关“获取”技术名称的线索:p)。我知道我还有很多东西要学,但英语不是我的母语,我尝试了 google 和 stackoverflow,但没有结果(我相信这是因为我的英语不好,不知道我使用的技术的名称)。

【问题讨论】:

  • 为什么不添加一个名为“标记为已读”的额外按钮。与其他情况一样,消息可能已呈现但用户尚未看到。
  • 问题已解决.. 但是我如何标记这个问题已解决或关闭线程?顺便谢谢大家的帮助:)

标签: php


【解决方案1】:

使用 cookie 来跟踪通知的状态。

有关更多信息,请参阅此主题:Best way to show an admin message to certain users?

【讨论】:

    【解决方案2】:

    您可以像这样检查用户是否进入通知页面(在他的默认用户页面之后):

    if (isset($_GET['cmd']))
    {
        // delete old notifications
        // and move to history table
        // show new ones now
    }
    

    这会检查查询字符串值cmd是否在那里,他已经移动到通知页面。

    【讨论】:

    • isset不是只用来检查cmd是否为空的吗?如果我有多个 cmd 值怎么办(比如 addusr 用于添加用户等?)。检查了php.net/manual/en/function.isset.php 中的文档,看起来没有 isset($_GET['cmd'] != 'notification')...
    • @bertizzie:你不会在php.net上找到 $_GET['cmd'] != 'notification' 的文档,这是你自己的解决方案,即使添加了更多用户,这也会检查它们:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多