我有一个PHP清单页面(mysite.com/listing),它使用foreach循环。它输出一个用户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,例如,如果用户单击item 1" user1"在Session变量中设置,并从清单页面传递到详细页面。在详细页面中,我只想输出"用户id是user1"。我想知道会话变量如何在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>
…等。
和"detail"页面:
$userID = $_GET["user"];