今更ながらですが、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+/

0 コメント:
コメントを投稿