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

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

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

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

JavaScript

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

HTML

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

Q&A

解決済

1回答

1896閲覧

モーダルをPHPとJavaScriptを連携させて一回だけ表示させたい

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2018/11/23 16:11

PHPのクッキーを用いて、初めてサイトにアクセスした時のみモーダル を表示させようとしています。
モーダルの部分は、HTMLとJavaScriptが入り混じったコードとなっており、これをPHPでクッキーの値が1のときに表示させるにはどうすればよいのでしょうか?

PHP

1<?php 2 3if(isset($_COOKIE["cookie"])){ 4 $count = $_COOKIE["cookie"]+1; 5 }else{ 6 setcookie("cookie", 1); 7} 8if($_COOKIE["cookie"] < 1){ 9 print "<script language=javascript>hoge()</script>"; 10 } 11 12?>

↑cookieが1のとき↓のモーダル部分を呼び出したい

JavaScript

1 <div class='modal fade' id='myModal' role='dialog'> 2 <div class='modal-dialog'> 3 4 5 <div class='modal-content'> 6 <div class='modal-header'> 7 <h4 class='modal-title'>For all shoppers</h4> 8 </div> 9 <div class='modal-body'> 10 <p>We require all shoppers to be at least 21 years of age.</p> 11 <p>Were you born before this date?</p> 12 13 <h2 id='birth-date'></h2> 14 <script> 15 var now = new Date(); 16 17 function ageConfirm(day) { 18 const month_english_list = ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May', 'June', 'July', 'Aug.', 'Sept.', 'Oct.', 'Nov.', 'Dec.'] 19 var y = day.getFullYear() - 21; 20 var m = day.getMonth(); 21 var d = day.getDate(); 22 23 return month_english_list[m] + " " + d + ", " + y; 24 } 25 26 $('#birth-date').html(ageConfirm(now)); 27 28 29 </script> 30 31 32 33 <button type='button' class='btn btn-info btn-md' id='myBtn'>Yes</button> 34 <button type='button' class='btn btn-info btn-md' id='myBtn' onclick='GoGoogle()'>No</button> 35 36 <script> 37 function GoGoogle() { 38 location.href = 'https://www.google.com/'; 39 } 40 41 </script> 42 43 <script> 44 $(document).ready(function() { 45 $('#myModal').modal('show'); 46 47 $('#myBtn').click(function() { 48 $('#myModal').modal('hide'); 49 }); 50 }); 51 52 </script> 53 54 </div> 55 </div> 56 57 </div> 58 </div>

そんな面倒なことしなくても、簡単な代案があるならば、お教えください。

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

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

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

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

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

m.ts10806

2018/11/23 22:34

Scriptをhtmlの中に混じらすのは可読性の観点から良くないですよ。発火タイミングはコントロールできるので外部jsにするか</body> の前にまとめて置かれた方が良いですね
退会済みユーザー

退会済みユーザー

2018/11/23 22:39

HTMLとJSを分離したあとは、PHPでHTMLをechoすればよいのでしょうか?
m.ts10806

2018/11/23 22:45

いえ。まず「初期で表示」自体はphp関係なくできるはずです。あくまで1回目とそれ以外を分離するだけなので、それができたらモーダルあげるだけです。Bootstrapにもmodal.show()のような昨日はあったはずです。今どこまでどこまでできてますか?
退会済みユーザー

退会済みユーザー

2018/11/28 04:25

初期で表示はできますが、モーダルのあるページを訪れるとなんども表示されるので、訪れた一回だけにしたいです。JavaScriptのSetTime関数で30分後にすることにします
guest

回答1

0

ベストアンサー

前に似たような質問があったみたいなので良かったら参考にしてみてください。

https://teratail.com/questions/104467

もし、ユーザーIDなどで相手が特定できるようであれば、モーダルを閉じるボタンでデータベースに残してやる方法も簡単でいいかもしれません。

投稿2018/11/28 05:36

ya_suhn

総合スコア25

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問