Javascriptでcookieを使って閲覧履歴を実装

Javascriptでcookieを使って閲覧履歴を実装:


Javascriptでcookieを使って閲覧履歴を実装

wordpress案件でcookieを使って閲覧履歴を実装しました。

遠回りをしてしまったのですが、最終的には配列を文字列化して対応しました。

そのメモです。

閲覧履歴:recent_view 
1,クッキーrecent_viewの存在をチェック(indexOf) 
2,なければ、配列recent_viewをつくって記事IDをいれる 
3,あれば、配列にする(split) 
4,重複チェック(indexOf) 
5,重複してたら、それを削除(splice) 
6,配列の先頭に記事IDを入れる(unshit) 
7,配列recent_viewを文字列化(join) 
8,クッキーrecent_viewに文字列を入れる 
 
var allCookie = document.cookie; 
 
$(function(){ 
    /* 閲覧履歴:recent_view */ 
    if (allcookie.indexOf('recent_view') == -1) {  
        var recent_view = []; 
        recent_view.unshift('<?=get_post()->ID?>'); 
 
    } else {  
        var str = allcookie.replace(/(?:(?:^|.*;\s*)recent_view\s*\=\s*([^;]*).*$)|^.*$/, "$1"); 
        recent_view = str.split(','); 
 
        var num = recent_view.indexOf('<?=get_post()->ID?>'); 
        if (num != -1) { 
            recent_view.splice(num, 1); 
        } 
        recent_view.unshift('<?=get_post()->ID?>'); 
    } 
 
    recent_view_str = recent_view.join(','); 
    document.cookie = 'recent_view='+recent_view_str+';path=/'; 
    console.log(document.cookie); 
}); 
あとは、phpの$_COOKIEで値を取得して配列に戻してループで利用します。

$recent_view = explode(',', $_COOKIE['recent_view']); 
$recent_view = array_map('htmlspecialchars', $recent_view); 
foreach($recent_view as $val){ 
    処理 
} 

コメント

このブログの人気の投稿

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-04-30 23:37:32 RSSフィード2021-04-30 23:00 分まとめ(42件)

投稿時間:2023-02-05 02:09:04 RSSフィード2023-02-05 02:00 分まとめ(9件)