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

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

詳細はこちら
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

解決済

2回答

961閲覧

PHPからajaxでサーバ処理を行いたい

Qoo

総合スコア1249

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クリップ

投稿2021/02/15 01:08

編集2021/02/15 01:09

https://teratail.com/questions/322475
の続きです。

PHPからajaxでサーバ処理を行いたいです
メインのphpファイルからajaxでpost.phpに処理を投げようとしています
ファイルは同じ階層にあるのですが、
実行するとアラートのerrorが帰ってきます。

require('post.php');
で確認するとpost.phpは正常に読み込まれます
しかし、xhr.open('POST','post.php');は読み込まれていないように思います

xhr.open('POST','./post.php');
でもエラーになります。

何が悪いのでしょうか...

js

1 2$("#trigger").on("click", function() { 3 4    var fd = new FormData(); 5 fd.append('foo',"OK"); 6 var xhr = new XMLHttpRequest(); 7 xhr.open('POST','post.php'); 8 xhr.send(fd); 9 xhr.onreadystatechange = function(){ 10 if ((xhr.readyState == 4) && (xhr.status == 200)) { 11 _returnValues = JSON.parse(xhr.responseText); 12 alert(_returnValues); 13 }else{ 14 alert("Error"); 15 } 16 }; 17 18 return false; 19} 20

php

1test.php 2 3<?php 4 $foo = "サーバ処理OK"; 5 print json_encode($foo); 6?>

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

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

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

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

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

m.ts10806

2021/02/15 01:41

readyStateとstatusには何が? JavaScriptの記述が書かれているファイルとpost.phpの位置関係は?
m.ts10806

2021/02/15 01:42

あと「リクエストを分ける」という部分は理解して取り組まれてますか?
m.ts10806

2021/02/15 01:54

あと、コードブロック内にはコードのみを。
Qoo

2021/02/15 02:01

内容確認していただきありがとうございます。 現在、JavaScriptはphpファイルの中で記述しております echo <<<EOM <script type="text/javascript"> alert(xhr.readyState); で確認すると 2→3→4とアラートが3回表示されます リクエストを分けるという部分は jsからajaxでpost.phpを呼ぶことでリクエストを分けることができて 結果をxhr.responseTextで受け取れるという理解なのですが、 ここも間違っていますでしょうか。。
m.ts10806

2021/02/15 02:08

まず、readyStateとstatusの確認を。学習や開発途中段階で固定のメッセージだけだして言語仕様が返してくれる情報を得ないのはありえません。デバッグ環境整えるのが先です。
guest

回答2

0

ベストアンサー

jQueryなら$.ajaxや$.postで処理するのが妥当です。
ただ最近の流れですとfetchでするほうがスマートで楽だと思います

投稿2021/02/15 04:21

yambejp

総合スコア116694

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

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

0

xhr.open('POST','post.php');

相対パスじゃなく、http://~ としっかりurl与えないといけないのでは?

参考記事:
XMLHttpRequest についてのメモ - Qiita

投稿2021/02/15 01:11

編集2021/02/15 01:13
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

m.ts10806

2021/02/15 02:10

実行元がhttpなら相対パス的に書いてもきちんとリクエスト先として認識されたはずです。 私もそこにhttpから書いたことはないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問