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

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

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

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

jQuery

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

Q&A

解決済

3回答

2763閲覧

JQUERYのajaxでphpに処理が渡っているかどうかを調べる方法

yukiko

総合スコア41

PHP

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

jQuery

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

0グッド

0クリップ

投稿2017/02/15 10:17

件名のとおりなのですが、JQUERYのajaxでphpに処理を渡そうとしています。クリックでphpに渡す処理なのですが、何も反応がないので、そもそもphpに処理が渡ったのかどうかが怪しいと思っています。
困っていることは、「phpに処理が渡ったのかどうか」をどうやって調べればいいのかわからないことです;;

html

1 $.ajax({ 2 type: "POST", 3 url: "update.php", 4 data: { 5 info_check: p_info_check, 6 date_yy: p_date_yy, 7 date_mm: p_date_mm, 8 date_dd: p_date_dd 9 }, 10 success: function (data) 11 { 12 //結果が0件の場合 13 if(data == null) alert('変換できませんでした'); 14 //返ってきたデータの表示 15 $(this).html(data); 16 }, 17 error: function (XMLHttpRequest,textStatus,errorThrown) 18 { 19 alert('Error : ' + errorThrown); 20 } 21 }); 22 return false;

呼び出し先のupdate.phpは、POSTで渡されるはずのパラメータを直接記述した形でのテストは終わっており、単体であれば正常に動きます。
また、このソースの寸前に入れたalertは出ますので、ここまでのプログラムは走っています。

ajaxを使うのが2回目なので、勉強不足で大変恥ずかしいところですが、検索ワードを外しているのか、解決策に繋がる情報を探し出せません。

何かヒントなどありましたら、ご教授いただきたく、よろしくお願いいたします。

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

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

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

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

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

guest

回答3

0

Fiddler などのキャプチャツールで要求・応答を調べてはいかがですか? Fiddler が使いやすいのでお勧めですが、IE なら F12 開発者ツール、Chrome ならディベロッパーツールでも調べることができると思います。

投稿2017/02/15 10:23

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

yukiko

2017/02/15 13:54

Fiddlerなるものを入れてみました。 使い方もよくわかっていないのですが、問題のプログラムを動かしたところ、URLの欄に下記が表示されました(ただいま、一時的にPOSTではなくGETでパラメータ渡しをしています)。 /XXXXXXX/update.php?info_check=1&date_yy=2017&date_mm=2&date_dd=28 これが出ているということは、update.phpに処理は渡っていると判断していいのでしょうか…。
yukiko

2017/02/15 14:04

↑update.phpに処理は渡っているみたいですね。 ありがとうございます。
guest

0

ベストアンサー

返り値を求めるのであれば、その形式を記載してください。

javascript

1$.ajax({ 2 type: "POST", 3 url: "update.php", 4 data: { 5 info_check: p_info_check, 6 date_yy: p_date_yy, 7 date_mm: p_date_mm, 8 date_dd: p_date_dd 9 }, 10 dataType: "json"

自分のやり方で恐縮なのですが・・
まず確認するのはupdate.php。
パラメータの受け取りを全部GETに変えて、正しいデータをjsonで吐き出しているかを確認します。
正常に出力できていたらパラメータをPOSTに変えます。

javascript

1success: function (data)

jqueryのバージョン次第ですが、ちょっと古いですね。

javascript

1}).done(function(data){ 2 alert(data.length); 3}).fail(function(data) { 4 alert('error!'); 5});

こんな感じで正常にデータ取れていたら1以上のalertが出るはずです。
consol.logでも構いません。
最後にデータ加工。

我流ですがこんな感じです。

投稿2017/02/15 10:27

takepieee

総合スコア686

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

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

yukiko

2017/02/15 13:44

<JS> $.ajax({ type: "GET", url: "update.php", data: { info_check: p_info_check, date_yy: p_date_yy, date_mm: p_date_mm, date_dd: p_date_dd }, dataType: "json", }).done(function(data){ alert(data.length); }).fail(function(data) { alert('error!'); }); 上記のように書き換えてみました。 また、飛び先のupdate.phpが受け取るところもPOSTをGETに変えてみました。 <PHP> <?php $info_check = $_GET[info_check]; $date_yy = $_GET[date_yy]; $date_mm = $_GET[date_mm]; $date_dd = $_GET[date_dd];        ・        ・ おそらく私がtakepieeeさんのおっしゃることを理解できていないのだと思いますが、GETに変えても、ブラウザのアドレスにパラメータを含めたURLが出るわけではないので、手がかりをどこで見ていいのかわからず、ブラウザを眺める状態に…。もしかしてすごくとんちんかんなことをしてるのかもです>< ただ、後半の}).done(function(data){のあたりを書き換えたら、alert('error!');の方が表示されました。 引き続き、調べてみますm(__)m
yukiko

2017/02/15 14:07

下の方で回答いただいた方のFiddlerなるもので見てみたところ、update.phpに処理は渡っているっぽいです。 上記のGETで書き換えたおかげで、パラメタが渡っていることがわかりました。 ありがとうございます。
yukiko

2017/02/18 14:22

たびたびありがとうございます。回答いただいたことをヒントに、なんとかかんとかphp側からのechoを受け取ることができました。 そもそもJSONってなにそれ美味しいの?くらいに、そのへんから意味がわかっていなくて、もう脳みそ沸騰して投げ出しそうになってました;; ありがとうございますm(__)m
guest

0

JQUERYでPHPにパラメタを渡すときに、ひとつ、渡し忘れているパラメタがあることに気づきました><。
その渡し忘れのパラメタが、phpのプログラム内で検索しているMariaDBのテーブルのキーだったため、データが読み取れないという状況になっていたようです。

ただ、phpプログラムからJQUERY側に返り値を渡すところは未だうまくいかず、errorが出っぱなしなので、引き続き頑張ります。

回答いただいたお二人の、両方の情報を元に、PHPに処理が渡っていることはわかったので、どちらの方にもベストアンサーを付けたかったのですが、一つしか選べないようなので、ごめんなさい;;

ありがとうございましたm(__)m。

投稿2017/02/15 14:15

yukiko

総合スコア41

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問