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

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

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

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

Q&A

解決済

2回答

5637閲覧

Ajaxを使いページをリロードさせずにフォーム送信をさせて 同ページで値をPHPで受け取りたいです。

mashumaro0628

総合スコア19

JavaScript

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

0グッド

0クリップ

投稿2017/11/22 04:57

編集2017/11/22 05:08

###前提・実現したいこと
Ajaxを使いページをリロードさせずにフォーム送信をさせて
同ページで値をPHPで受け取りたいです。

調べたのですがAjaxに関してその程度の認識しかないので
Ajaxが本来何をするためのものか、最低限何をすれば動くのか
を教えていただけるととても助かります。
###発生している問題・エラーメッセージ

POSTした値をechoで表示しようと思うのですが出ません。

###該当のソースコード

js

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="utf-8"> 5<script type="text/javascript"> 6function httpobj(){ 7 var xmlHttp; 8 xmlHttp = new XMLHttpRequest(); 9 xmlHttp.onreadystatechange = checkReadyState; 10 xmlHttp.open("POST", "add.php"); 11 xmlHttp.send(); 12} 13function checkReadyState(){ 14 if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)){ 15 alert(xmlHttp.responseText); 16 } 17} 18</script> 19</head> 20<body> 21<form> 22 <input type="text" value="商品名を入力してください" name="name"> 23 <br> 24 <input type="radio" name="product"><a>検索</a><input type="radio" name="product"><a>選択</a> 25 <br> 26 <input type="text" value="商品分類を入力" name="cate"> 27 <input type="button" name="submit" onclick="httpobj()"> 28 <?php echo $_POST['name']; ?> 29</form> 30</body> 31</html>

###試したこと
課題に対してアプローチしたことを記載してください

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

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

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

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

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

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

kei344

2017/11/22 05:19

提示のHTMLは「add.php」でしょうか。
mashumaro0628

2017/11/22 05:21

あ、すみません。add.phpです
guest

回答2

0

ベストアンサー

提示のコードではクリックした時点でsubmitが実行されるため、ページが移動すると思います。

とりあえず慣れるまでは呼び出し側HTMLとPHPを分けたほうがわかりやすいと思います。あと、jQueryではじめるのがお勧めです。

【jQuery & Ajax通信を使ってPHPにPOSTでデータを送信するサンプル – WebCake】
http://webcake.no003.info/webdesign/jquery-ajax-php-post-sample.html

【JavaScript(jQuery)からPHPのAPIを利用する - Qiita】
https://qiita.com/mpyw/items/62e6e415f86eb30a5ff4

投稿2017/11/22 05:52

kei344

総合スコア69400

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

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

0

ちょっと意味がわからないのですが
ajaxで取得したデータをphpで受け取ることは理論的に不可能では?
php(または他のサーバープログラム)に投げるのがajaxなので
取得したデータは元のページにもどってきます。

投稿2017/11/22 05:29

yambejp

総合スコア114777

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

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

KSwordOfHaste

2017/11/22 13:58

(1)PHPでHTMLを生成 (2)PHPからHTML送信==>browser (3)PHP起動<==browser(javascript)からajaxでサーバーアクセス しかし(3)は(1)とは別のコンテキスト。質問者さんはこの契機での結果を(1)の時点のPHPで検知してなんとかするということを意図しているように思える。しかしそれは無理。 というふうに考えました。yambejpさんの「不可能」とは上に述べた内容と同様の意味でしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問