2010-01-03 101 views
1

這是我遇到的問題。用戶可以登錄,但如果他們不刷新頁面,他們將無法登出。那麼我該如何調用另一個Ajax調用?如何在另一個Ajax調用之後運行ajax調用?

的註銷鏈接是由拳頭Ajax調用加載,會是什麼問題?

下面是在日誌中jQuery代碼:

$(".bt_login").click(function(){ 
    $.ajax({ 
      type: 'POST', 
      url: 'widgets/Login/loginProcess.php', 
      data: dataString, 
      success: function(data){ 
       if(data == 'error'){ 
        alert('Wrong username and/or password!'); 
       }else{ 
        $('#loginForm').html(data); 
        $('#greet').html('Hello '+username+'!').fadeIn(); 
        $('#open').html('Open Panel'); 
       } 
      } 
     }); 
    }); 

這裏是註銷jQuery代碼:

$('.bt_logout').click(function(){ 
     var dataString = 'process=logout'; 
     $.ajax({ 
      type: 'POST', 
      url: 'widgets/Login/loginProcess.php', 
      data: dataString, 
      success: function(data){ 
       $('#loginForm').hide().html(data).fadeIn(); 
       $('#greet').html('Hello Guest!'); 
       $('#open').html('Log In | Register'); 
      } 
     }); 
    }); 
+0

可選地,確保註銷鏈路總是在DOM,但最初設置爲顯示:無。然後,您可以像現在這樣,將點擊事件綁定到登錄和註銷。只需添加一行登錄/ ajax /成功show()註銷鏈接。 – Cheekysoft 2010-01-03 16:01:32

回答

1

在這種情況下:

$(".bt_login").click(function(){ 
$.ajax({ 
     type: 'POST', 
     url: 'widgets/Login/loginProcess.php', 
     data: dataString, 
     success: function(data){ 
      if(data == 'error'){ 
       alert('Wrong username and/or password!'); 
      }else{ 
       $('#loginForm').html(data); 
       $('#greet').html('Hello '+username+'!').fadeIn(); 
       $('#open').html('Open Panel'); 

       // because .bt_logout only exists after this point: 

       $('.bt_logout').click(function(){ 
        var dataString = 'process=logout'; 
        $.ajax({ 
         type: 'POST', 
         url: 'widgets/Login/loginProcess.php', 
         data: dataString, 
         success: function(data){ 
          $('#loginForm').hide().html(data).fadeIn(); 
          $('#greet').html('Hello Guest!'); 
          $('#open').html('Log In | Register'); 
         } 
        }); 
       }); 
      } 
     } 
    }); 
}); 
2

你只需要運行第二代碼片段,一旦註銷鏈接已被寫入以約束事件。這與連續的Ajax調用無關,而是與在第一個調用的成功方法中添加鏈接然後不綁定其單擊事件有關。

3

如果你想打個電話之後另一個,把代碼調用你的第一個電話的「成功」函數內部的第二個電話。