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

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

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

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

jQuery

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

6950閲覧

GETかPOSTのリクエストパラメーター方法を変更する方法(AJAX)

takato

総合スコア148

JavaScript

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

jQuery

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/01/21 02:53

編集2016/01/21 07:21

度々失礼します。

以前GETかPOSTのフォームを選択してリクエストする方法を教えていただきました。
しかし、片方のフォームが上手くリクエストすることができず、原因を調べた結果リクエスト時にフォームを変更しただけでは上手くいかないことがわかりました。
そこでセレクトボックス時に選択したフォームだけでなくリクエストパラメーターごと変更する方法を教えていただきたいです。

GETの場合は?のあとにパラメーターが付記され、POSTの場合はボディに設定するといった普通のリクエストです。

下記は選択時にフォームを選択してリクエストできるJSファイルです。

javascript

1 $(function(){ 2//ボタン押下で入力した項目を変数にいれる 3 $("#button").click( function(){ 4 var url = $("#url_post").val(); 5 var dept_ids = $("#dept_ids").val().split(","); 6 var start_date = $("#start_date").val(); 7 var end_date = $("#end_date").val(); 8 var JSONdata = {}; 9 JSONdata.dept_ids = dept_ids; 10 JSONdata.start_date = start_date; 11 JSONdata.end_date = end_date; 12 $.ajax({ 13 url : url, 14 type : $("#method_select").val()・・・セレクトメソッドで選択したフォームをここにいれる 15 data : JSON.stringify(JSONdata), 16 contentType: "application/json;charset=UTF-8", 17 dataType : "json", 18 accepts : {json: "application/vnd.glv.v1+json;charset=UTF-8"}, 19}).done(function(data, status, xhr) { 20 $("#response").html(JSON.stringify(data)); 21}).fail(function(xhr, status, error) { 22 // 通信失敗時の処理 23 alert("失敗"); 24}).always(function(arg1, status, arg2) { 25 // 通信完了時の処理 26 alert("完了"); 27 }); 28 29 }) 30 })

下記の方法で解決いたしました。
①セレクトボックスでなく選択ボタンを増やす(GET,POSTボタン)
②それぞれJavascriptであらかじめサーバー側で受け取れる形式通りに変更して送信できるようにする。

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

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

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

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

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

takato

2016/01/21 03:22

eripong様 申し訳ないです。あの質問から今夏に問題に行き着いたのに解決積みになっていなかったですね。。。解決積みと解決方法について記載してきます!
takato

2016/01/21 03:30

eripong様 文章改善、今回判明した問題について明記してきました。 この度は不快な思いをさせてしまい大変申し訳ありませんでした。
eripong

2016/01/21 03:34

そういうことですか。どの様なリクエストパラメータであるべきで、実際にどうだったかをこの質問に追記していただけますか?
takato

2016/01/21 03:39

申し訳ございません。かしこまりました。すぐに修正してきます。
eripong

2016/01/21 03:53

サーバがどのようなリクエストを受け付けるかの仕様は分かりませんか?
takato

2016/01/21 03:56

eripong様 GETの場合は?のあとにパラメーターを付与する、 POSTの場合はボディに設定すると聞きました。
eripong

2016/01/21 03:57

聞いたというのはサーバの仕様に詳しい人からですか?
takato

2016/01/21 04:04

この仕様を作成した方です。 詳しくお話しすると前回のフォームを変更してもリクエストできないとわかったので今回の仕様に変更したとのことです。
eripong

2016/01/21 04:12

了解です。回答しましたので、確認お願いします。
takato

2016/01/21 05:10

ご迷惑おかけしました。迅速な対応に感謝しております。
guest

回答1

0

ベストアンサー

おそらく、

data : JSON.stringify(JSONdata),

としている箇所を、POSTではそのままに、
GETの場合は

data : JSONdata,

とすべきです。

processDataでパラメータ化される処理がGETの場合のみ必要ですが、
datastringになっているとその処理が動かないためです。

投稿2016/01/21 04:11

eripong

総合スコア1546

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

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

takato

2016/01/21 05:56 編集

eripong様 今試させていただきました。 結果はエラーとなっていました・・・ 確認したところdept_idだけGETパラメーターで送られていないことがわかりました。 自分でも少しほかの方法で試してみます。 また、「$("#method_select").val()」のように 「JSON.stringify(JSONdata),」か「JSONdata,」とHTML上で変更することはやはり不可能なのでしょうか? セレクトメソッドで選択するのではなくボタンを二つ用意してそれぞれGETで送信するボタン、片方はPOSTで送るボタンを作ればいいことに気づきました! eripong様が見る間になんとか解決せておきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問