2008年9月17日水曜日

jQueryの$.post

スズキです。

今更ながらですが、jQueryの$.postを真剣に使う機会があったので、
自分メモです。

$.postは非同期通信で外部のURLをPOSTメソッドでリクエストし、
そのレスポンスを受け取る関数です。

よく使う書式はこんな感じだと思います。

$.post("hoge.php", {"hoge1" : 1, "hoge2": "hoge"}, my_func);

第一引数: リクエスト対象URL
第二引数: POSTパラメータ
第三引数: レスポンス取得後に実行する関数

my_funcは引数を一つとり、
その引数に取得したレスポンスのBody(HTTP)が入ります。
(こんな感じで関数定義します)
function my_func(data) {
  alert(data);
}

$.postのポイントですが、おそらく第二引数のPOSTパラメータでしょう。
JSON形式で記述します。
{"hoge1" : 1, "hoge2": "hoge"}

一つのパラメータ名に複数の値をセットするには、配列を使います。
{"hoge1" : [1, 2]}
注意点として、同じパラメータ名で複数セットすると、
最後のものだけが有効になり、想定した結果にはなりません。
{"hoge1" : 1, "hoge1" : 2}

最後にこのJSON形式のパラメータ指定で、IE(7)とFirefox(3)との
挙動の違いです。

Firefox(3)は最後にカンマが残っていても正常に動作しますが、
IE(7)は動作しません。
{"hoge1" : [1, 2,], "hoge2" : "hoge",}

なので手を抜かず、カンマはちゃんと
複数データをつなぐときだけに用いるようにしましょう。

詳しくはこちら。(そこまで詳しくないか)
http://semooh.jp/jquery/api/ajax/jQuery.post/+url%2C+data%2C+callback%2C+type+/

--
http://suz-lab.blogspot.com/

0 コメント: