Session 链接更改会话变量
我有一个电子商务网站的列表页面,上面有各种项目(item_list.php)。此页面由PHP循环生成,并显示Session 链接更改会话变量,session,e-commerce,session-variables,Session,E Commerce,Session Variables,我有一个电子商务网站的列表页面,上面有各种项目(item_list.php)。此页面由PHP循环生成,并显示元素中的每个项目。每个项目都是指向同一页面的链接,称为item_details.php 单击链接时,我想运行一个脚本,将会话变量更改为某个$id(将从本身的.innerHTML函数中删除),然后允许浏览器移动到下一页(项目详细信息) 这是必要的,这样我就可以显示每个项目的适当信息 我认为这在Ajax中是可能的,但我更喜欢只使用JS和PHP的解决方案 (顺便说一句,这是一个大学项目,我还是一
元素中的每个项目。每个项目都是指向同一页面的链接,称为item_details.php
单击链接时,我想运行一个脚本,将会话变量更改为某个$id(将从
本身的.innerHTML函数中删除),然后允许浏览器移动到下一页(项目详细信息)
这是必要的,这样我就可以显示每个项目的适当信息
我认为这在Ajax中是可能的,但我更喜欢只使用JS和PHP的解决方案
(顺便说一句,这是一个大学项目,我还是一个PHP新手,我尝试了很长一段时间寻找答案,但找不到解决方案)没有JS或其他客户端代码可以设置会话值,因此您需要对PHP进行ajax调用,或者进行一些变通。这不是一个完整的答案,但有些东西能让你思考,希望能再次进行这个项目 显而易见的答案是,只需将其包含在链接中,然后在PHP中从$\u get-array获取它,并对其进行适当过滤
<a href="item_details.php?id=123">item title</a>
最后,作为最佳方法,您应该查看当前代码,看看是否有可以重新设计的内容。下面是一个简单的例子。
您可以在php中执行以下操作,在每次页面加载时在会话中保存一个值数组,然后获取该值,前提是您的项目具有某种id或其他可用标识符:
// for list_items.php
foreach($item as $i) {
// Do what you normally do, but also set an array in the session.
// Presuming you have an id or some other means (here as item_id), to identify
// an item, then you can also access this array on the item_details -page.
$_SESSION['mystic_item_data_array'][$i['item_id]] = $i['thedata'];
}
// For item_details.php
$item_id = // whatever means you use to identify items, get that id.
$data_you_need = $_SESSION['mystic_item_data_array'][$item_id];
最后。
以上所有方法都适用于小数据,如上一页、过滤器、键等
基本上,如果数据实际上是在客户端生成的,则只应使用1和2(客户端)。如果您已经在PHP中使用了它,那么也可以在PHP中处理它
如果您打算存储实际的html,那么只需在另一个页面上再次重新生成该html,并使用上述方法之一存储小数据,以备需要
我希望这能让你行动起来,至少想想如何解决你的项目。祝你好运 谢谢你的时间,我会试试看你描述的哪些方法对我最有效。答案很明显,就像你说的,我只是在网上找不到它,因为我是一个PHP新手,不知道搜索它的术语。我还会记下备选方案,以备需要。
$_COOKIE['li_click_data'];
// for list_items.php
foreach($item as $i) {
// Do what you normally do, but also set an array in the session.
// Presuming you have an id or some other means (here as item_id), to identify
// an item, then you can also access this array on the item_details -page.
$_SESSION['mystic_item_data_array'][$i['item_id]] = $i['thedata'];
}
// For item_details.php
$item_id = // whatever means you use to identify items, get that id.
$data_you_need = $_SESSION['mystic_item_data_array'][$item_id];