質問: 現在javascript(jQuery),HTML,PHP,cakePHP3を使って 入力フォームを作成しています。 その入力値をselialize()でシリアライズ化し、それをajaxの「url」の語尾に追加して GET送信でcakePHP3のコントローラ側に送っています。 ただ本当はPOST送信で送らなけらばならないので、 ajaxの「data」にシリアライズ化した文字列を配列?として設定したいです。 **javascriptやjQueryでシリアライズ化した文字列をajaxの「data」に設定できるような形に変える方法はありますでしょうか?** シリアライズ化した文字列の項目が非常に多いのでそのような方法を探しています。 もしご存じでいらっしゃいましたらよろしくお願い致します。 ※イメージ ``` $.ajax({ type: "POST", url: "ajax.php", data: { "page": 2 ←★ここにシリアライズ化した文字列を設定したい }, success: function(j_data){ // 処理 } }); ```
回答: JavaScript で Form のシリアライズというと FormData でしょうか ならこう書けるようです ``` var fd = new FormData(document.querySelector("form")); fd.append("CustomField", "This is some extra data"); $.ajax({ url: "stash.php", type: "POST", data: fd, processData: false, // jQuery がデータを処理しないよう指定 contentType: false // jQuery が contentType を設定しないよう指定 }); ``` --- **追記** jQuery の `serialize` メソッドでも、 `key1=value1&key2=value2` 形式の文字列になので、 `data` に直接その変数を渡してしまえば大丈夫です