前提
入力画面で作ったデータをオブジェクトとして持っています。(3つ)
登録ボタンを押したらjsonに変換して値をajaxで送っていたのですが、
仕様上の関係で、ページ移動する仕様になりpost通信を利用する形になりました。
(GETだと容量を超えるので使えません)
やりたいこと
三つのオブジェクトと名前と役柄と日付をまとめて送りたいです。
下のサイトを参考にしても出来ませんでした。
Formを作らずにJSでPOST送信
上記のサイトで私が渡したデータはget通信のような
name=value,name=object,… みたいな形で渡しました。
分かる方がいましたら、ご教授お願いいたします。
jquery
var object1 = {"Id":[],"Val":[]}; var object2 = {"Id2":[],"Val2":[]}; var object3 = {"Id3":[],"Val3":[]}; var name= $('[name=name] option:selected').text(); var chara= $('[name=chara] option:selected').text(); var date = $(".date").datepicker("getDate"); date = $.datepicker.formatDate('yy/mm/dd', date) //オブジェクトは.pushでテーブルのデータを入れてjson stringfyで変えています。 var test = "name:"+ name + ",chara:" + …以下略 execpost(action,test);
jquery
function execPost(action, data) { // フォームの生成 var form = document.createElement("form"); form.setAttribute("action", action); form.setAttribute("method", "post"); form.style.display = "none"; document.body.appendChild(form); // パラメタの設定 if (data !== undefined) { for (var paramName in data) { var input = document.createElement('input'); input.setAttribute('type', 'hidden'); input.setAttribute('name', paramName); input.setAttribute('value', data[paramName]); form.appendChild(input); } } // submit form.submit(); }