2009-09-28 7 views
5

別のjqueryアクションの後に要素(div、class)をリフレッシュするにはどうすればよいですか?jQuery:別のjqueryアクションの後でdivを更新しますか?

$(function() { 
    $(".delete").click(function() { 
     var commentContainer = $(this).parent(); 
     var id = $(this).attr("id"); 
     var string = 'id='+ id ; 

     $.ajax({ 
      type: "POST", 
      url: "delete.php", 
      data: string, 
      cache: false, 
      success: function(){ 
       commentContainer.slideUp('slow', function() {$(this).remove();}); 
      } 
     }); 

     return false; 
    }); 
}); 

ありがとう:

...

を、私は、データベースからレコードを削除されたこのアクションを持っていると私は同様に、データベースからいくつかの他のデータをフェッチしているのdivを更新する必要がありますまあ、ここのコードですすべての助けのために! :)

+0

どの要素を更新しますか?その要素は、最初にデータベースからデータをどのように取得しますか? – richsage

+0

なぜそれを単一のajax呼び出しに統合しないのですか?レコードを削除すると、サーバーは選択した要素を満たすためにHTMLを返します。もっと意味をなさない。 – karim79

答えて

7

AJAX呼び出し中に成功関数を使用すると、呼び出しが成功した後にコマンドを実行できます。すでにコード内に関数があるので、その関数を更新するだけです。更新したいdivにはAJAXもロードできます。

$.ajax({ 
    //other options 
    success:function(){ 
     commentContainer.slideUp('slow', function() {$(this).remove();}); 
     $('#otherdiv').load('urlofpagewith info.php'); 
    } 

}); 
+0

はい、これは私が望んだことです!実際にはちょっと前の頃、私はどこか他のものを見つけて、それを置く場所に気付かなかった。:) ありがとう! – Marko

0

最初のajaxが成功した後に、リフレッシュする関数を追加しないでください(なぜなら、2つのajaxリクエスタを組み合わせて、はるかに効率的です)。


... 
function doRefresh_ofAnotherDiv() { 
    $.ajax({ 
     type: ..., 
     url: ..., 
     data: ..., 
     cache: ..., 
     success: function(){ 
     // updateAnotherDiv(); 
     } 
    }); 
} 
... 
$.ajax({ 
    type: "POST", 
    url: "delete.php", 
    data: string, 
    cache: false, 
    success: function(){ 
     commentContainer.slideUp('slow', function() {$(this).remove();}); 
     doRefresh_ofAnotherDiv(); 
    } 
}); 
... 

これが役立ちます。

5

だけ成功コールバックのdataパラメータを公開し、いずれかの要素の内容を置き換え、この例でのdivのid = "someDiv":

$.ajax({ 
    type: "POST", 
    url: "delete.php", 
    data: string, 
    cache: false, 
    success: function(data){ 
    commentContainer.slideUp('slow', function() {$(this).remove();}); 
    $('#someDiv').html(data); 
    } 
}); 

は、より多くの情報のためajax optionsを参照してください。

また、神の愛のための変数名として型名を使用していない、それはstringreserved word in Javascript(代わりにdata: strまたはdata: dataStringを使用)でなくても、本当に怖いと恐ろしいプラクティスです。

+1

+1予約語に対する警告! – krillgar

0

ほとんどすべてのjquery関数はコールバック関数を使用できます。元のアクションの実行が終了するたびに呼び出されます。だから、これはajaxだけではなく、どのような関数でも使うことができます。

関連する問題