Ajaxを使ってformに入力された複数のデータををPOSTする時
var UserID = $("input[name=user_id]").val();
var UserMail = $("input[name=user_mail]").val();
var UserTell = $("input[name=user_tell]").val();
var SelectA = $("select[name=select_a]").val();
var SelectB = $("select[name=select_b]").val();
var SelectC = $("select[name=select_c]").val();
var SelectD = $("select[name=select_d]").val();
:
のように記述していたら膨大なコードになったりするので、
まとめてPOSTする方法。
var fd = new FormData();
$("input[type=text]").each(function(){
fd.append(this.name,this.value);
});
$("select").each(function(){
fd.append(this.name,this.value);
});
var postData = {
type : "POST",
dataType : "text",
data : fd,
processData : false,
contentType : false
};
eachを使いinputのnameとvalueを連想配列としてappend。
配列化させた状態のままAjaxでPOST。
phpでデータを受ける際
foreach ($_POST as $key => $value) {
${$key} = $value;
}
foreachでkeyを変数名に流し込む。
カテゴリー:javascript