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

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

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

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

jQuery

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

解決済

1回答

1842閲覧

ajaxの挙動について

Chandler_Bing

総合スコア673

PHP

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

jQuery

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

0クリップ

投稿2019/01/20 10:06

PHP変数$endによって入札か、終了かの表示を変更するプログラムがあります.ajaxを使う必要はこプログラムではありませんが、挙動を確認したいです。

質問❶
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$end = true;
}
に届いていないのですが、何が間違っているのでしょうか。

質問❷
ajaxはサーバーのデータを得て、そのデータをJSの中で扱うということですよね。
つまり、この場合ajaxでデータを投げ、仮に
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$end = true;
}

の下にPHPのコードがあってもそれはページ全体読み込むことがない限りは実行されませんよね。

PHP

1<?php 2 3$end = false; 4 5if($_SERVER['REQUEST_METHOD'] == 'POST'){ 6 $end = true; 7} 8 9?> 10 11<!DOCTYPE html> 12<html lang="en" dir="ltr"> 13 14<head> 15 <meta charset="utf-8"> 16 <title></title> 17 <link rel="stylesheet" href=""> 18 <script src="../Shopping/jquery-3.3.1.min.js"></script> 19</head> 20 21<body> 22 23 <div class="dobid"> 24 25 <?php if ($end == false): ?> 26 <a href="#">入札する</a> 27 <span>残り時間</span><span class="time">.......</span> 28 <?php elseif ($end == true): ?> 29 <p>このオークションは終了しました</p> 30 <?php endif ?> 31 32 </div> 33 34</body> 35 36<script> 37 var end = '<?php echo $end; ?>'; 38 39 if (end == false) { 40 41 send_data= JSON.stringify('sample'); 42 43 $.ajax({ 44 url: "ajax.php", 45 type: "POST", 46 contentType: "Content-Type: application/json; charset=UTF-8", 47 data:send_data 48 }); 49 50 } 51</script> 52 53</html>

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

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

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

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

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

guest

回答1

0

ベストアンサー

回答1
Apache等のWebサーバを通して、返ってくる値は標準出力と呼ばれるもので、
PHPのecho関数などで出力されるものです。

JSに渡す場合は、

echo $end;

などとして、標準出力に出力しないといけません。

掲示されているコードがajax.phpであるとすれば、
$end = falseと最初に定義しているため、ajax関数は実行されることはなく、このページからPOSTでこのファイルに接続されることはないです。
(デフォルトの通信はGETメソッドで行われます。)

回答2

ajaxはサーバーのデータを得て、そのデータをJSの中で扱うということですよね。

その通りです。

しかし、その下のPHPのコードは実行されます。
if文の中で終わらせたい場合は
return文が必要です。

return文はそのファイルの実行を終了するという意味です。(厳密には現在のコールスタックを終了するです。興味がある場合は調べてみてください。)

追記

ちょっと勘違いしていそうな部分を

1つ目
phpファイルを呼び出した場合に、必ずファイルの頭から実行されます。
これはどんな時でも必ずです。

2つ目
phpコードはサーバで、JavaScriptはブラウザ上で実行されます。
基本的に常に通信しているわけではないので、一度サーバから送られてきたものは変更されることはありません。

3つ目

<?php?>で囲まれているところ以外もサーバ上ではPHPの一部として扱われると考えた方がよいです。

タグの外側はすべて出力されます。

例えば

php

1<?php 2echo "Hello World!<br>"; 3?> 4<html></html>

というファイルがあった場合、

Hello World!<br><html></html>

という値が返ってきます。


私が言えるのはこのくらいですかね。

あとは、この辺のページとか参考にしながら、
https://qiita.com/zakiyamaaaaa/items/bdda422db2ccbaea60d9
https://qiita.com/okumurakengo/items/53020dd97382d49621ce
1行ずつ意味を考えながら、書いていってみてください。

Ajax 入門

とかで調べると他にも出てくると思います。

投稿2019/01/20 10:46

編集2019/01/20 12:04
GrayWingAliance

総合スコア218

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

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

Chandler_Bing

2019/01/20 10:52

ありがとうございます。 ❶ではどのようにすれば、自身のページ飛バスことができますか。 ❷>しかし、その下のPHPのコードは実行されます。 ですが 1 2 3 4 5 6 ajaxで4行目に飛んだ場合はsoreikano5,6行目にみ実行されるということでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問