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

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

ただいまの
回答率

90.51%

  • PHP

    20408questions

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

  • jQuery

    6726questions

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

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

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 646

yukiko

score 27

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

        $.ajax({
            type: "POST",
            url: "update.php",
            data: {
          info_check: p_info_check,
          date_yy: p_date_yy,
          date_mm: p_date_mm,
          date_dd: p_date_dd
          },
            success: function (data)
            {
                  //結果が0件の場合
                  if(data == null) alert('変換できませんでした');
                  //返ってきたデータの表示
                  $(this).html(data);
            },
            error: function (XMLHttpRequest,textStatus,errorThrown)
            {
                  alert('Error : ' + errorThrown);
            }
       });
        return false;


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

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+5

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/15 22:54

    Fiddlerなるものを入れてみました。

    使い方もよくわかっていないのですが、問題のプログラムを動かしたところ、URLの欄に下記が表示されました(ただいま、一時的にPOSTではなくGETでパラメータ渡しをしています)。

    /XXXXXXX/update.php?info_check=1&date_yy=2017&date_mm=2&date_dd=28

    これが出ているということは、update.phpに処理は渡っていると判断していいのでしょうか…。

    キャンセル

  • 2017/02/15 23:04

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

    キャンセル

checkベストアンサー

+2

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

$.ajax({
 type: "POST",
 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"

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

success: function (data)

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

}).done(function(data){
 alert(data.length);
}).fail(function(data) {
 alert('error!');
});

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/15 22: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

    キャンセル

  • 2017/02/15 23:07

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

    キャンセル

  • 2017/02/16 15:39

    すみません外出しておりました。
    jsonで受け取るのであれば、そのphpにURL直打ちし、GETで投げた時に、json形式でechoし表示出来ていればOKです。
    http://www.artib.net/demo/demo6/dummy.php?name=%E4%BD%90%E8%97%A4
    こんな感じのデータをechoし、
    http://qiita.com/takepieee/items/c140018b6e7c5d031ba6#modal%E3%82%A6%E3%82%A4%E3%83%B3%E3%83%89%E3%82%A6
    こんな感じで受け取れば大丈夫です。

    キャンセル

  • 2017/02/18 23:22

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

    キャンセル

0

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.51%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • PHP

    20408questions

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

  • jQuery

    6726questions

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