質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Cookie

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1054閲覧

jquery.cookie.jsで一部の値のみ削除したい

web11

総合スコア52

Cookie

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/07/14 15:27

jquery.cookie.jsで一部の値のみ削除したいです。
removeCookieですと、クッキー名の値のデータは全て削除されてしまいます、こちらを「プロジェクト3」のみ削除等、クッキー名の中の一部のみ削除したいです。
解答よろしくおねがいします。
またPHPで、クッキーは設定しているのですが、削除するときは画面転移したくないため、js側で削除するのは処理としておかしいでしょうか?

javascirp

1$.removeCookie('history_item', { path: '/' }); 2//クッキー名history_item 3a:3:{i:0;s:19:"プロジェクト3";i:1;s:19:"プロジェクト2";i:2;s:19:"プロジェクト1";}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/07/15 00:38 編集

> 「プロジェクト3」のみ削除 というのがそもそも、結果としてどうなればいいのかわかりません。 文字列から一部文字を削除するなら正規表現が妥当ですが、 なにをキーにしてどこの部分を削除するか明確にしてください 普通はオブジェクトに展開して、削除して文字列に戻すみたいな方向性だと思いますが・・・
web11

2020/07/15 03:49

申し訳ありません PHPでクッキーの値をセットした際は、プロジェクト1、プロジェクト2、プロジェクト3のように文字列だけ配列で入れたため、js上でも、先頭だけ削除などの操作が出来るかと思っていました。
guest

回答1

0

ベストアンサー

PHPで、クッキーは設定しているのですが、削除するときは画面転移したくないため、js側で削除するのは処理としておかしいでしょうか?

Cookieの用途によります。
セッションクッキー(httpOnly を含めたCookie)の場合は、サーバー側がクレデンシャル(ユーザアカウントに紐づく情報)とともに発行する情報ですので、JavaScriptでは変更できません。
(黎明期のブラウザはできましたが、セッションハイジャックを防止するために出来なくなっています)

removeCookieですと、クッキー名の値のデータは全て削除されてしまいます、こちらを「プロジェクト3」のみ削除等、クッキー名の中の一部のみ削除したいです

Cookie による保存は発行処理で行います。

  1. 期限切れ情報として発行する。(削除)
  2. 新しい期限で発行する。(更新)

という方法で制御する必要があります。

「プロジェクト3」を削除した情報で更新をかけることになります。

追記)
jquery.cookie.js usage

  • $.cookie() .. 取得/保存(更新 expires: 7 のように指定すると、期限延長になる)
  • $.removeCookie() ... 削除

javascript

1// cookie 名 を 'name' とする例 2var val = $.cookie('name'); 3 4var neo = /* omitted : val とは異なる情報 */ 5$.cookie('name', neo, { expires: 7 });

ライブラリで簡便に利用できるCookieですが、その仕組みはHTTPヘッダ(Set-Cookie / Cookie)を用いたもので、所定のフォーマットがあります。
MDN HTTP Cookies

投稿2020/07/14 16:41

編集2020/07/14 23:41
AkitoshiManabe

総合スコア5434

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

web11

2020/07/15 05:46

直接削除は出来なくて、値を再度保存し直すしか無いんですね 解決しました。ベストアンサーに選ばせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問