🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Cookie

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

Q&A

解決済

1回答

967閲覧

cookie.jsでcookieを取得、phpに渡す方法

eight

総合スコア5

Cookie

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

0グッド

0クリップ

投稿2019/10/29 05:33

編集2019/10/29 05:52

実現したいこと

画像が多く羅列されているページにて
jquery.cookie.jsを用いて
画像を非表示ボタン押下 → 画像を非表示(display:none;にする)
画像を表示ボタン押下 → 画像を表示
リロード時は値を保持。
(画像を非表示のままリロードした場合画像の読み込みはしない。)

以上のことを実現したいのですが、どのようにやるのがよいでしょうか
PHP初心者のため、ご教授いただければ幸いです。

※補足
PHPを使う理由
・ボタンの表記変更(画像を非表示 表示の切り替え)
・画像の取得をPHPで行っているため

画像表示の状態でリロード → 画像を読み込むかつ「画像を非表示ボタン」が出る
画像非表示の状態でリロード → 画像を読み込まないかつ「画像を表示」ボタンが出る

うまく文章にできずすみません。このようなイメージです。

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

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

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

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

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

m.ts10806

2019/10/29 05:40

なぜphpの必要性が出てきたのか経緯や背景も書かれた方がより得たい回答を得られると思います
m.ts10806

2019/10/29 05:41

あとひとつのことを実現するための手段はひとつではなく、利用者にとっては単に「そう動く」ことが正解なので、実装方法に正解はありません。 質問のしかたを変えた方が良いかと思います(質問は編集できます)
guest

回答1

0

ベストアンサー

PHPは不要です
jsで保持しているcoookieの値を見て、適用するimgを
toggle()すればいいでしょう。

sample

javascript

1<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 2<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> 3<script> 4$(function(){ 5 $('#btn').on('click',function(e){ 6 var flg=false; 7 if(typeof e.originalEvent==="undefined"){ 8 flg=$.cookie('img_show')!=="0"; 9 }else{ 10 flg=$(this).val()=="表示"; 11 $.cookie('img_show',flg?"1":"0") 12 }; 13 $(this).val(flg?"非表示":"表示"); 14 $('.target').toggle(flg); 15 }).trigger('click'); 16}); 17</script> 18<input type="button" value="非表示" id="btn"> 19<img src="https://placehold.jp/ff0000/00ffff/150x150.png?text=1" alt="1" class="target"> 20<img src="https://placehold.jp/00ff00/ff00ff/150x150.png?text=2" alt="2"> 21<img src="https://placehold.jp/0000ff/ffff00/150x150.png?text=3" alt="3" class="target"> 22

投稿2019/10/29 05:38

編集2019/10/29 06:45
yambejp

総合スコア116694

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

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

yambejp

2019/10/29 06:14

PHPで処理するにはページの遷移が必要です 表示・非表示を切り替えるのにわざわざページ遷移するのは 無駄ですが、ほんとにその仕様で大丈夫ですか?
yambejp

2019/10/29 06:40

参考までにjQuery.cookieを含んだサンプルを追記しておきました
eight

2019/10/29 07:07

解決しました! 確かにおっしゃる通りでした。 ありがとうございましたm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問