我有一个php数据库驱动的网站,我想实现一个功能,导航栏上有一个部分,显示网站上访问过的网页(及其网址)的历史记录。我计划使用$_SESSION
数组来存储此列表。
这应该很容易,但我还希望在每个历史记录条目旁边都有一个删除按钮,以便用户可以从历史记录栏中删除页面。这样做的问题是,要更新$_SESSION
数组并删除该条目,它将需要重新加载页面,如果用户位于搜索结果页面等页面上,则会出现错误,因为页面生成依赖于提交的表单。其他页面上还会有其他此问题的例子。
我宁愿不必将搜索等存储在会话变量中以解决这个问题所以想知道是否会有某种方式使用javascript删除历史记录栏上的条目然后以某种方式更新php会话当用户导航离开或刷新页面时,来自javascript的变量...但我不确定js如何改变php会话变量。这有用还是有另一种解决方案?
答案 0 :(得分:2)
您可以按照以下步骤操作:
对PHP
文件进行ajax调用,并销毁与用户访问过的网页历史相关的SESSION
个变量。
在ajax
成功后,隐藏/删除HTML
元素或使用JavaScript
在网页上显示网页历史记录网址的容器。
由于您的搜索页面取决于POST
值,因此可确保清除用户的页面历史记录,而无需刷新页面。当用户导航到其他链接时,页面将重新加载,用户将无法获得旧链接。
希望这有帮助!
答案 1 :(得分:1)
你可以使用AJAX,例如,如果你按下注销按钮,ajax会向服务器端发送信息,但php将完成破坏该会话的所有工作。在stackoverflow上有很多ajax的例子。