I want to store Javascript array as a Cookie

后端 未结 3 861
暗喜
暗喜 2020-11-28 05:40

Is it possible, I have a some sort of list and I want to store it on browser, if it is not possible, what is the efficient way of doing this?

相关标签:
3条回答
  • 2020-11-28 05:55

    For each value id in an array, please try below method to save a value in a cookie array:

    <script type="text/javascript">
    
    /**
     * set cookie
     */
    function set_cookie(cookiename, cookievalue, hours) {
        var date = new Date();
        date.setTime(date.getTime() + Number(hours) * 3600 * 1000);
        document.cookie = cookiename + "=" + cookievalue + "; path=/;expires = " + date.toGMTString();
    
    }
    
    set_cookie('item['+id+']', id, 24*365*10); // 10 years
    
    </script>
    

    And you can retrieve this array in php:

    <?php
    foreach($_COOKIE['item'] as $e){
    echo $e,'<br />';
    }
    ?>
    
    0 讨论(0)
  • 2020-11-28 06:01

    One quick method is to join() your array into a single string, using an appropriate delimiter:

    var a = [1, 2, 3, 4];
    a.join('|');  // Returns: "1|2|3|4"
    

    Then simply use the string split() method to get the array back from the cookie string.

    0 讨论(0)
  • 2020-11-28 06:03

    JSON encode it, effectively producing a string like "{name:'myname',age:'myage'}" which you put in a cookie, retrieve when needed and decode back into a JavaScript array/object.

    Example - store array in a cookie:

    var arr = ['foo', 'bar', 'baz'];
    var json_str = JSON.stringify(arr);
    createCookie('mycookie', json_str);
    

    Later on, to retrieve the cookie's contents as an array:

    var json_str = getCookie('mycookie');
    var arr = JSON.parse(json_str);
    

    Note: cookie functions are not native, taken from How do I create and read a value from cookie?

    0 讨论(0)
提交回复
热议问题