タイトル長い。
CakePHPでフォームの内容をajaxでポストしたいときに、今までは
$.ajax({ type: "POST", url: '/forms/add', data: {data1: $("#FormData1").val(), ... }, });
とか、とっても面倒な事をしていました。
いちいちフォーム(input)ごとにデータを渡さないといけないし、コントローラで利用するときも$this->params[‘form’]や$_POSTから利用したりすることになるので、非常に厄介。
この2つの問題を解決してくれる方法を、↓の素敵サイトにて発見しました。
cakePHP+JQueryでajaxを使ってFormの内容をPOSTしてみた。 | polidog lab++
これならたった1行(改行しなければ。)で、データ渡せるじゃん!
しかも、コントローラで$this->dataで使えるじゃん!*1
すげーじゃん!
と、いうわけでここにメモさせていただきます。
var postData = {}; $("form :input").each(function(){postData[$(this).attr("name")] = $(this).val();});
いやぁ、polidog lab++さんのおかげで大助かりです!
すばらしい記事をどうもありがとうございました!
polidogさんがドモホルンリンクルが落ちてくるのを見てるだけの仕事ができるよう全力で応援させていただきます^^
- CakePHPはFormのname属性をみて$this->dataにPOSTされたデータを入れているということなのかしら? [↩]