jQuery.ajaxのdata部分を共通化する方法

このQ&Aのポイント
  • jQuery.ajaxのdata部分を共通化する方法についてアドバイスをいただきたくご質問します。
  • 複数のコードにおいてdata部分が同じであるため、共通化する方法について教えてください。
  • よく行う共通処理を使って、jQuery.ajaxのdata部分をまとめる方法について教えてください。
回答を見る
  • ベストアンサー

jQuery.ajaxのdata部分を共通化したい

以下のコードについてアドバイスいただきたくご質問しました。 jQuery.ajax({ type: "POST", url: "/hoge.php", data: { 'aaaaa':'あああああああああああ', 'bbbbb':'いいいいいいいいいいいいいいいい', 'ccccc':'うううううううううううううううううううう', 'ddddd':'えええええええええええええええええ' } }); jQuery.ajax({ type: "POST", url: "/test.php", data: { 'aaaaa':'あああああああああああ', 'bbbbb':'いいいいいいいいいいいいいいいい', 'ccccc':'うううううううううううううううううううう', 'ddddd':'えええええええええええええええええ' } }); ↑この形のコードが復数あります。 data{~~}の内部は、同じなので共通化?したいのですが、 この場合はどのように記述すれば良いのでしょうか。 よく行う共通処理をfunctionなどでまとめておくような外部化みたいな事は可能でしょうか。 拙い説明ですが、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5081/13278)
回答No.1

データ部分を共通化するなら、関数の外で postData = { 'aaaaa':'あああああああああああ', 'bbbbb':'いいいいいいいいいいいいいいいい', 'ccccc':'うううううううううううううううううううう', 'ddddd':'えええええええええええええええええ' }; という定義をしておいて jQuery.ajax({ type: "POST", url: "/hoge.php", data: postData }); とすれば行けますし、urlを引数として関数にまとめるなら function hoge (postUrl) { jQuery.ajax({ type: "POST", url: postUrl, data: { 'aaaaa':'あああああああああああ', 'bbbbb':'いいいいいいいいいいいいいいいい', 'ccccc':'うううううううううううううううううううう', 'ddddd':'えええええええええええええええええ' } }); } という関数を用意して hoge("/hoge.php"); hoge("/test.php"); って感じで呼び出す方法もあります。

Search_tmp
質問者

お礼

ありがとうございます! アドバイスを元に処理して、うまくいきました! 処理をまとめられて、きれいな形になって嬉しいです。

関連するQ&A

  • Jquery.ajaxでHTML読み込み

    現在、Jquery.ajaxを使って外部HTMLの読み込み処理を行い、処理完了後にフェードで表示させるということをしているのですが、読み込んだHTMLに貼り付けてある画像が読み込まれる前にHTMLが表示されてしまい、困っています。 Jquery.ajaxでは内包されている画像の監視まではできないのでしょうか? 下記が今作っているコードです。 $contest.css({ "opacity": 0 }); $.ajax({ type: "GET", url: "hoge.html" dataType: "html", success: function(data) { $contest.html($(data).find("#hoge")); }, complete: function() { $contest.stop().animate({ "opacity": 1 }, 1000, "easeOutCubic"); } }); おわかりになる方、ご教授お願いします。

  • jQueryでGETだと送信できるデータがPOSTだと送信できません。

    jQueryでGETだと送信できるデータがPOSTだと送信できません。 jQueryをつかって文字列をPHPに送信したいのですが、GETでは送信できるのにPOSTだと送信ができません。 js -------------------- $.ajax({ type:"POST", //GETだと送信できます。 url:"hoge.php", data:{data:"hoge"}, success:function(data,status){ alert(data); } }); -------------------- php -------------------- <?php $_POST[data] //GETの場合、$_GET[data] == "hoge"。 echo $data; ?> -------------------- 問題点がわかりましたらご指摘いただければと思います。

  • 連想配列を変数にする?

    こんにちは。 質問タイトルが変かもしれません。。。 xmlから受け取ったデータをphpで表示してます。 ・・・xmlデータの受取(?)は他社にお願いしており、私はphpでの表示のみなのでデータそのものは分かりません。 [aaaaa][bbbbb][ccccc][ddddd][depday] [aaaaa][bbbbb][ccccc][ddddd][cityname] [aaaaa][bbbbb][ccccc][ddddd][b][depday] [aaaaa][bbbbb][ccccc][ddddd][b][cityname] のように非常に長い連想配列があり、一番最後の[depday]と[cityname]は常に同じです。あまりにも長いので $hairetsu_1 = [aaaaa][bbbbb][ccccc][ddddd]; echo $hairetsu_1[depday]; echo $hairetsu_1[cityname]; $hairetsu_2 = [aaaaa][bbbbb][ccccc][ddddd][b]; echo $hairetsu_2[depday]; echo $hairetsu_2[cityname]; のように表示させる事は出来るのでしょうか? とんちんかんな質問だったらお許しください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • グーグルドキュメント(文書)で2列にする方法

    グーグルドキュメント(文書)で2列にしたいです。 横書きの場合。 左半分で、左上から始まり下にまでいく。 右半分の上にから始まり下までいくと、次のページ・・・ イメージだとこんなかんじです。 1枚目 aaaaa bbbbb aaaaa bbbbb aaaaa bbbbb aaaaa bbbbb aaaaa bbbbb aaaaa bbbbb aaaaa bbbbb aaaaa bbbbb 2枚目 ccccc  ddddd ccccc  ddddd ccccc  ddddd ccccc  ddddd ccccc  ddddd ccccc  ddddd ccccc  ddddd ccccc  ddddd

  • ajax反映後のjqueryが動かない

    色々と簡略化してますが、以下のようなajaxを交えたコードを書いています。 <script type="text/javascript"> $(function() { /* 初期変数処理 */ ............ /* HTML内object操作 */ ............ /* ある箇所をclickでイベント */ $('#hoge').click(function(e) ←(1)画面アニメーション { test3(); } /* 数秒後に(1)を自動実行 setInterval(function(){ ...... } /* formを使って検索 */ $('#form').submit(function(event) { event.preventDefault(); ........(中略) $.ajax({ type:"POST", url: "hoge.php", data:{data: data}, timeout: xxxxx, beforesend: { ........ }, complete: { ........ } success: function(data){ ......... ← (2)HTML内object操作、jquery部分は避ける test2(); } }); return false; }); function test1(){ ........ }; function test2(){ ........ }; function test3(){ ........ }; }); </script> [HTML] <form id = "form"> <input name="list"/> <button>送信!</button> </form> <div id="hogehoge"> ................. ←(3)検索で内容変更する箇所 </div> としているのですが、一度送信ボタンを押して(2)の処理を行った後、 (1)のアニメーションも含め、すべてのjquery要素が使用できなくなってしまいました。 http://semooh.jp/jquery/api/events/live/type,+fn/ によればliveを使えばclick処理はできるとありましたが、これでも動きません。 setIntervalの効果や、submitイベントすら動きませんでした。 なお、検索前は問題なく動作します。通常時は問題ないのですが、submit後からおかしいので、 ajaxに関してなにか見逃している箇所があるとは思うのですが、 どこが悪いのかはっきりと検討がついていません。 どなたかお知恵をお貸しいただけませんでしょうか。宜しくお願いします。

  • jQuery Ajaxでクロスドメイン通信

    jQuery Ajaxでクロスドメイン通信をやりたいのです以下の質問について教えて下さい。 AjaxからPHP(別ドメイン)にデータをPOSTで投げたいです。 PHPファイルがあるディレクトリはBasic認証してあります。 質問1. AjaxのdataTypeオプションは、PHPからjQueryが受け取るレスポンスのデータタイプのことですか? それともjQueryからPHPからにデータを投げる場合にもこのタイプ指定で何か変わるのでしょうか? 質問2. クロスドメイン通信をdataTypeがjsonpじゃないとクロスドメイン通信はできないのでしょうか? 質問3. dataTypeがjsonpのとき、jQueryから投げるURLの末尾に?data=hogehogeのようにパラメータが付きます。 typeオプションをPOSTにしているのにGETのようにパラメータが付くのはなぜでしょうか? これのせいで、数千文字のパラメータをPOSTできずGETの文字数制限でエラーになってしまいます。 どれは一つでもおわかりでしたらお教え下さい。 よろしくお願い致します。

  • jqueryのAJAXで通信が完了した時のアラートをLightbox風

    jqueryのAJAXで通信が完了した時のアラートをLightbox風に表示したい。 コード <script type="text/javascript"> //<![CDATA[ $(function(){ $('#exebtn').click(function() { $.ajax({ type: "post", url : "sendmail.php", data : { message: $('#message').val(), exebtn:$('#exebtn').val()}, datatype:'text', //ここの部分をどう変えれば出来るのでしょうか? success: function(data) { if(data != ''){ alert(data); }}, }); }); }); //]]> </script> ご教授、宜しくお願い致します。

    • ベストアンサー
    • AJAX
  • jQueryでajax

    ajax(jQuery使用)を使った以下のサンプルは、 セレクトボックスを選択すると、ボタンを表示するのですが、 そのボタンをクリックしても、アラート(This is success!)が表示されません。 ajaxで吐き出した<button>ボタン</button>のボタンのクリックイベントが 検知しないような感じですが、いったいどこが間違っているのかわかりません。 どなたか、ご教授いただけると助かります。 htmlソース ------------------------------------------- <meta http-equiv="content-script-Type" content="text/javascript" /> <meta http-equiv="content-style-Type" content="text/css" /> <link rel="stylesheet" href="./photo.css" media="all" /> <title> テスト</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $("button").click(function() { alert("Test is success!"); }); $(".first").change(function() { var param = ''; $.ajax ({ type: "POST", url: "ajax.php", data: param, cache: false, success: function(res) { $("#result").html(res); } }); }); }); </script> </head> <body> <select name="first" class="first" id="first"> <option value="1">項目1</option> <option value="2">項目2</option> </select> <p>結果:</p> <div id="result" style="width:808px;"></div> </body> </html> phpソース ---------------------------------------- <?php echo '<button>ボタン</button>'; ?>

    • ベストアンサー
    • AJAX
  • jquery PHP 値 ajax

    失礼します。現在jqueryで作成した2次元配列をPHP側に渡したいのですが上手くいきません。 jquery側のコンソールで確認した際にはsuccessの処理が行われ配列の中身がjson形式で表示されるのですが、その内容をPHP側で確認しようとするとNULLが返ってきてしまいます。 何卒ご教授よろしくお願いいたします。 html側 $(function(){ // 送るデータ形式はJSONでなければ、PHP側でエラーが出る.のでJSON.stringify()でJSON形式に変換 send_data= JSON.stringify(data); // 送信処理 $.ajax({ url: "ajax.php", // 送信先のPHP type: "POST", // POSTで送る contentType: "Content-Type: application/json; charset=UTF-8", //必須ではなさそうだが、サーバ側との整合のために明示しておいた方がよい。 // dataType: 'json', //受信形式 必須ではなさそうだがサーバ側との整合のために明示しておいた方がよい。 data:send_data //JSON形式の送信データ }).success(function(data, status, xhr) { // 通信成功時の処理 console.log("success"); console.log("data ="+data); console.log("status ="+status); console.log("xhr ="+xhr); }).error(function(xhr, status, error) { // 通信失敗時の処理 console.log("error"); }).complete(function(xhr, status) { // 通信完了時の処理 console.log("fin"); }); }) }) PHP側 二通り試してみました。 <?php //php://inputはPOSTの生データを取得できる $json = file_get_contents("php://input"); //JSON形式データをPHPの配列型に変換 $data = json_decode($json); var_dump($data) ; //POSTできたデータを格納 $hoge = $_POST['data']; var_dump($hoge);

    • ベストアンサー
    • AJAX
  • wordの段落を保持したままテキスト変換

    wordで作成した文書を、段落の見た目を保持したままテキストに変換する方法はないでしょうか? 段落がスペースに変換されるといいのですが、 コピー&ペーストですと行頭がそろってしまいます。 やりたいこと word文書 1.aaaaa  (1)bbbbb   ア.ccccc   イ.ddddd  (2)ddddd   ア.ccccc   イ.ddddd ↓ テキスト文書 1.aaaaa  (1)bbbbb   ア.ccccc   イ.ddddd  (2)ddddd   ア.ccccc   イ.ddddd コピー&ペーストの場合 word文書 1.aaaaa  (1)bbbbb   ア.ccccc   イ.ddddd  (2)ddddd   ア.ccccc   イ.ddddd ↓ テキスト文書 1.aaaaa (1)bbbbb ア.ccccc イ.ddddd (2)ddddd ア.ccccc イ.ddddd よろしくお願いいたします。

専門家に質問してみよう