使用SELECT表单和jQuery在WordPress中设置Cookie

时间:2011-11-14 作者:Gabriela

大家好,提前感谢你们对我的关注。我在wordpress中有这个代码,但我无法正确理解。

我在下拉列表中列出了美国各州。当用户从选择表单中选择一个选项并按下“设置新位置”按钮时,我需要写入一个cookie,其中包含该位置的ID(或实际名称)。我正在使用(或至少尝试使用)jquery cookie插件(https://github.com/carhartl/jquery-cookie) - 但可能主要的问题是我几乎不知道jQuery,哈哈。

不起作用的想法是jQuery.cookie(\'my_cookie\', \'my_value\');

你能帮帮我吗?以下是我正在研究的代码:

                <form id="categoriesform" action="<?php bloginfo(\'url\'); ?>" method="get">

                    <div>
                    <?php $cats = get_categories($args); 
                    $termID = $_COOKIE[\'my_cookie\'];

                    $term = get_term( $termID, \'location\' );

                    $name = $term->name;
                    ?>
                    <select id="categories">
                    <?php foreach ($cats as $cat) : ?>
                        <option value="<?php echo get_term_link($cat, $cat->taxonomy) ?>" ><?php echo $cat->name ?></option>
                    <?php endforeach; ?>
                    </select>
                    <input type="submit" name="submit" value="Set New Location" />
                    </div>
                </form>

                <script>

                jQuery(document).ready(function()
                {
                    jQuery(\'#categoriesform\').submit(function()
                    {
                        jQuery.cookie(\'my_cookie\', \'my_value\');
                        window.location = jQuery(\'#categories\').val();
                        return false;
                    });
                });
                </script>

1 个回复
最合适的回答,由SO网友:Chris_O 整理而成

如果不给cookie一个过期时间,它将仅在该会话期间可用。如果已经设置了现有cookie,则还需要销毁该cookie。

jQuery(function() {

    jQuery(\'#categoriesform\').submit(function(e) {
         if (jQuery.cookie(\'my_cookie\') ) { jQuery.cookie( \'my_cookie\', null) }
        jQuery.cookie(\'my_cookie\', \'my_value\', { expires: 30 });
    });
});
您是否测试过cookie是否正在设置?使用chrome developer tools中的网络选项卡并加载页面。单击左侧的第一个项目,即站点的url,然后单击cookie选项卡,查看cookie是否存在。

阅读cookie时,你还应该检查它是否在那里。

if (isset($_COOKIE[\'my_cookie\'])) {
$termID = $_COOKIE[\'my_cookie\'];

结束

相关推荐

Taxonomy Parent Name

我只是想知道如何修改这段代码:<?php $term = get_term_by( \'slug\', get_query_var( \'term\' ), get_query_var( \'taxonomy\' ) ); echo $term->parent; ?> 。。。要显示父名称,而不仅仅是整数?当前它返回ID。谢谢