首页 > 解决方案 > 如何设置 cookie 的多个值并将它们全部显示在另一个页面上?

问题描述

我的网站有一个产品数据库,每个产品都有一个唯一的零件编号。

我最近在我的网站上创建了一个 cookie,称为“零件号”,并具有从我的数据库分配给它的零件号的值。

这是我目前拥有的代码,并且正在生成一个 cookie,其值是分配给我所在的产品页面的任何部件号:

<script type="text/javascript">
    <?php
        // LOAD REQUIRED WP PLUGIN class
        include_once( ABSPATH . 'wp-admin/includes/plugin.php' );

            // DO PLUGIN ACTIVATION CHECK
            if ( is_plugin_active('product-item-templates/product-item-templates.php') ) {
        // Product Items Template is LOADED >>
    ?>
    <?php   

            $item = $new_url->get_page_url_data();
            $pn = $item['pn'];
            $man = $item['man'];
            $model = $item['model'];
    ?>

        var pn = "<?php echo $pn;?>";
        var model = "<?php echo $model;?>";
        var man = "<?php echo $man;?>";

        Cookies.set("partnumber", pn , { expires: 7 });

    <?php
            } // END PLUGIN ACTIVATED CHECK
    ?>
</script>

例如,如果用户访问零件编号为“ABC”的产品页面,则名称为“零件编号”的 cookie 将保存为“ABC”的值。

我想这样做的原因是能够使用名为“添加到报价”的按钮触发 cookie,然后将 cookie 的值调用到“我的报价”页面中的单独字段中。但是,每次我访问新的零件编号页面时,cookie 都会简单地将“零件编号”cookie 的值替换为新值。

我的问题:

是否可以保存同一个 cookie 的多个值?或者说最多 10 个相同 cookie 的值?

如果没有,任何人都可以提供另一种方法来保存此唯一信息并将其显示在另一个页面上,以便用户可以浏览我的产品,单击“添加到报价”按钮,然后转到“我的报价”页面查看他们已添加到报价中的零件编号列表。

注意:我知道如何为 cookie 设置一个值,但我想知道如何为同一个 cookie 设置多个不同的值 - 或者,如何告诉站点创建一个具有不同值的新 cookie(即现有并且来自我的产品数据库)每次我点击我网站上的按钮时。

提前致谢。

标签: javascriptphpcookies

解决方案


您可以为存储的值存储一个值,partnumbers并且可以从这些值中直接推导出来。我正在考虑一个 的键partnumbers,它的值类似于"4,5,8",你有像partnumber4partnumber5的键partnumber8。因此,您partnumbers首先从 cookie 中获取值,调用然后.split(",")迭代生成的数组以分别获取partnumber4和。如果您想存储一个新的零件编号,例如 11,只需将其设置为之前的值,将 11 添加到它(如果不为空,则在 11 之前加上一个逗号)和.partnumber5partnumber8partnumberspartnumber11


推荐阅读