2010/09/05

jQuery:: AJAXコールバック関数内でID毎に処理

jQueryのAJAX機能はやっぱり楽ちん!

なんですが知識と経験が足りないため、コールバック関数内でID毎に処理を振り分ける方法がわからん・・・

調べてみたところ、コールバック関数内のthisは、AJAX呼び出し時の各パラメータが格納されているオブジェクトだそうで。

ですので、GETないしはPOSTで送信したデータに処理させてたいIDを明記してやる方法を使っています。

もっとスマートなやり方あるのかな・・・

サンプルをメモ。

★コール
$(".get_hoge").click(function(){
    var id = this.id;
    $.ajax({
        type: "GET",
        url: "hoge.php",
        dataType: "text",
        data: "mode=hoge&id=" + id,
        error: function(){alert('データ取得に失敗しました');},
        success: dispHoge
    });
});
★コールバックfunction dispHoge(data){
    //ID部の取得は、簡易的に行っています。汎用性を持たせるなら、pluginを使う方がいいでしょうね。
    var id = (this.data).substr( (this.data).lastIndexOf("=") + 1 );
   
    if(id == "hoge1"){
        hoge1用処理
    }
    else{
        その他処理
    }
}
スポンサーリンク

スポンサーリンク