Session 链接更改会话变量

Session 链接更改会话变量,session,e-commerce,session-variables,Session,E Commerce,Session Variables,我有一个电子商务网站的列表页面,上面有各种项目(item_list.php)。此页面由PHP循环生成,并显示元素中的每个项目。每个项目都是指向同一页面的链接,称为item_details.php 单击链接时,我想运行一个脚本,将会话变量更改为某个$id(将从本身的.innerHTML函数中删除),然后允许浏览器移动到下一页(项目详细信息) 这是必要的,这样我就可以显示每个项目的适当信息 我认为这在Ajax中是可能的,但我更喜欢只使用JS和PHP的解决方案 (顺便说一句,这是一个大学项目,我还是一

我有一个电子商务网站的列表页面,上面有各种项目(item_list.php)。此页面由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];