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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

JavaScript

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

jQuery

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

Q&A

解決済

1回答

917閲覧

webサイトにて画面(ページ)を開いたまま定期的にサーバーを確認し、データがあれば画面を更新したい。

ringoame49

総合スコア46

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

JavaScript

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

jQuery

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

0グッド

1クリップ

投稿2021/08/29 11:46

質問失礼します。

現在タイトルの通り、webサイトにて定期的にサーバーを確認し、データがあれば画面を更新したいです。

【具体的にやりたい事】
ある画面を開きながら定期的にサーバーを確認し、確認結果が確認結果を基に表示画面の一部のHTMLにクラスを設定したいのですが、わからない部分があります。

今試みている方法はJQueryでタイマーをセットし、〇秒に1回ajax通信を行い、ajaxで指定したphpファイルでselect分を実行しています。
実行した結果をSESSIONに格納しています。
1回目はselectした値がSESSIONに格納されるのですが、DBの値を変えてもずっと1回目の値がSESSIONに格納させたままです。
色々調べて以下のソースまで作りましたが一向に解決しないため解決方法をお教えいただけますと幸いです。
現段階では一旦コンソールにSESSIOMの値を表示しています。ここがずっと1回目に格納した値が表示されます。

sample.php

session_set_cookie_params(3600); session_name('test'); session_start(); <html> 中略 var intervalId; setTimer(); function setTimer(){ intervalId = setInterval(teikiCheck, 3000); } function teikiCheck(){ $.ajax({ url : "./teiki.php", type : "POST", data : { }, }).done(function(data){ if(<?=$_SESSION['flug']?> == 18){ console.log('flugは' + <?=$_SESSION['flug']?>); }else{ console.log('false'); } }).fail(function(XMLHttpRequest6, textStatus, errorThrown){ alert("ajax失敗"); }); }

teiki.php

$statement = $dbh->prepare("SELECT flug FROM teiki WHERE id = 1"); $statement -> execute(); $result = $statement -> fetch(PDO::FETCH_ASSOC); $flug = $result['flug']; session_set_cookie_params(1); session_name('sample'); session_start(); unset($_SESSION['flug']); $_SESSION['flug'] = $flug;

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

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

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

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

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

guest

回答1

0

ベストアンサー

回答

teiki.phpにアクセスし、値が変わったセッションの値をJavaScriptで使用するためには、
以下のような流れになります。

  1. teiki.phpでJSON形式でレスポンスを返すようにする
  2. JSONで正しくデータが返ってきた場合、$.ajax().done(data)dataにそのJSONが格納されるので、JavaScriptでdataを使う(今回の場合だと、console.log()で確認してみる)

【PHP】Ajaxを使ってJSON形式で配列データを取得し、Webページ上に表示させる最低限の方法の解説が分かりやすいと思いますので、
一度上記ページのコードをそのまま動かしてみて、少しずつ変更を加えてみると理解しやすいかと思います。

補足

少し処理の順番を勘違いをされているように思います。

function teikiCheck(){ $.ajax({ url : "./teiki.php", type : "POST", data : { }, }).done(function(data){ if(<?=$_SESSION['flug']?> == 18){ console.log('flugは' + <?=$_SESSION['flug']?>); }else{ console.log('false'); } }).fail(function(XMLHttpRequest6, textStatus, errorThrown){ alert("ajax失敗"); }); }

のJavaScriptのコードは、最初にアクセスした以降は変わりません。
<?=$_SESSION['flug']?>はあくまでsample.phpのコードであり、そのあとのAjax通信によって変わるものではありません。(開発者ツールで該当部分のHTMLソースを見ながら変更されないことを確認してみてください)

$_SESSIONの値はサーバサイド(PHP)側のみに存在するので、JavaScriptでその値を得るには、PHP側で出力してあげる必要があります。

投稿2021/08/29 12:49

tanat

総合スコア18716

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

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

ringoame49

2021/08/29 12:52

ご回答ありがとうございます! お教えいただきました参考URLをお基に改修してみます!
ringoame49

2021/08/29 13:25

行けました!!! JSONに関して100%理解はできていませんがURLのページを見よう見真似でできました! この度はお力添えいただきありがとうございました!
tanat

2021/08/29 13:30

解決して良かったです。 フィードバックありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問