php - 对于每个循环 - 设置会话变量
问题描述
我在 PHP 中有一个使用 foreach 循环的列表页面 (mysite.com/listing)。它输出一个用户 ID,例如 user1、user2 和一个到详细信息页面的链接,例如:mysite.com/detail
输出:
1. User ID = user1 <a href="mysite.com/detail">Detail Page</a>
2. User ID = user2 <a href="mysite.com/detail">Detail Page</a>
...
10. User ID = user10 <a href="mysite.com/detail">Detail Page</a>
详细信息页面 (mysite.com/detail) 需要从列表页面接收相应的用户 ID,例如,如果用户单击项目 1,“user1”设置在 Session 变量中并从列表页面传递到详细信息页面。在详细信息页面中,我只想输出“用户 id 是 user1”。我想知道 Session 变量如何在 foreach 循环中工作,还是有更好的解决方案?如果我使用类似的东西:
$_SESSION['user_id'] = (string)$user->primary_id;
echo $_SESSION['user_id'];
..在列表页面的foreach循环中,它将捕获循环中的最后一个用户ID,例如user10,并且
echo $_SESSION['user_id'];
......在详细信息页面中将输出'user10'而不是'user1'。甚至可以在 foreach 循环中使用会话变量吗?谢谢
解决方案
"user1" is set in a Session variable and passed from the listings page to the detail page
...没有必要这样做。会话不是实现这一目标的最佳方式(尤其是因为如果您在浏览器的多个选项卡中打开站点,则传输数据的模型会中断)。
只需在超链接 URL 中放置一个查询参数并使用$_GET
.
例如
User 1 <a href="mysite.com/detail?user=1">Detail Page</a>
User 2 <a href="mysite.com/detail?user=2">Detail Page</a>
...ETC。
并在“详细信息”页面中:
$userID = $_GET["user"];
推荐阅读
- excel - 通过vba将excel中的word文件保存为pdf
- node.js - 使用代理时,运算符的 Rxjs 不发出值
- python - Jupyter Notebook 不导入任何模块
- c++ - 我似乎无法将指针分配给数组,然后更改数组的内容
- javascript - 来自 vue-i18n 的全局方法 this.$t 在函数中不起作用
- sql - 为什么我的 SQL 选择查询只返回一行?
- javascript - slate.js 示例中的以下代码片段在做什么?
- mysql - 在Netbeans中使用JSF,项目运行时不会加载css
- html - 在 Laravel pdf 中从 Javascript 到 HTML 获取价值
- vba - 您可以将 LongLong 存储在 Variant 中吗?