ajaxの際に form.serialize で一括送信できる件

今までバカな事していた。ajaxでpostとかgetする際に、いちいち各inputの値とかを取得していたんだけどそんなことしなくてもform.serializeで一発だった。

javascript

function postForm(btn) {
  $.ajax({
    type:  "post",
    url:   "/test.php",
    data:  $(btn.form).serialize() + '&param=1',
    success: function(json) {
      // 成功時の処理
    }
  });
}

html

<form>
..
<input type="button" value="送信" onclick="postForm(this)" />
</form>

これでformの値をpostしてやるとphp側でうまく配列として取得できる。
serializeすると &xxx=xxx の形式になるため追加したいときはそれに従えばよい。

参考サイト
jQueryでフォームをAjax送信する際の基本パターンのチュートリアル。二重送信の防御とか。 | Ginpen.com