【问题标题】:For each loop - setting session variables对于每个循环 - 设置会话变量
【发布时间】:2021-11-16 21:26:13
【问题描述】:

我有一个使用 foreach 循环的 PHP 列表页面 (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,例如用户 10 和 echo $_SESSION['user_id']; ...在详细信息页面中将输出“user10”而不是“user1”。 甚至可以在 foreach 循环中使用会话变量吗? 谢谢

【问题讨论】:

  • 不能使用 GET 值?

标签: php html session


【解决方案1】:

"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>

...等等。

并在“详情”页面中:

$userID = $_GET["user"];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 2018-07-20
    相关资源
    最近更新 更多