2013-06-01 194 views
2

是否可以用jQuery刷新單個div?我有一個註銷用戶的按鈕。點擊按鈕後,我想顯示登錄表單,所以我需要重新解析這個div。用jQuery刷新div

我div的內容是這樣的:

<div id="signup" class="register"> 

    <?php 
     $email = $_COOKIE['email']; 
     $login = $_COOKIE['login']; 

     if($email != null && $email != "" && $login != null && $login != "") { 
      echo "<h3>you are logged in as <b>$email</b></h3><br><br><button id='logoutbtn' class='submitButton'>Logout</button>"; 
     } else { 
      // show login form 
     } 
    ?> 

</div> 

這是我的JavaScript部分,我進行登出:

$('#logoutbtn').click(function() {  
    $.ajax({ 
     type: "POST", 
     url: "php/logout.php", 
     async: false, 
     success: function(data){ 
      // reload signup div 
     } 
    }); 
}); 

編輯:我logout.php腳本刪除的cookie,這就是爲什麼我需要重新解析註冊div。

+0

你可以在你的成功函數中用'$(「#signup」).html(data)''來用你的PHP腳本的輸出覆蓋Div的內容...... – CBroe

+0

或者看看'.load' –

回答

3

您可以動態改變註冊div的內容與jQuery如下:

$("#signup").html("My New Login Section"); 

var $loginDiv = $(document.createElement("div")).html("<label>Username</label><input type='text' id='username'/>"); 
$("#signup").html($loginDiv); 
+0

這不完全是我打算做的,但它的工作原理。問題是我必須將html代碼添加到註冊表單的一個變量中,該表單很長。 – doonot

1

使用load()

$('#signup').load('php/logout.php', function() { 
    alert('Logout.'); 
}); 
+0

我認爲load()不是這裏的正確方法,因爲可以通過AJAX輕鬆訪問註銷腳本。問題是如何在用戶註銷後刷新視圖。 – doonot

0

我想嘗試:

$('#logoutbtn').on('click', function() {  
    $.ajax({ 
     type: "POST", 
     url: "php/logout.php" 
    }) 
    .done(function(data){ 
     $('#signup > h3').html('Please <button id="loginbtn" class="submitButton">Login</button>'); 
    }); 
}) 

可以使用相同的方法進行登錄操作,以防止頁面必須刷新。

0

,你有你的標籤的內部會話方法,你可以成功事件做到以下幾點:

success: function(data){ 
     $("#signup").load(".register"); 
    } 

它會重新裏面< DIV ID的=「註冊」級=「註冊」一切>和因爲您已經刪除了會話(我想),而不是將其重新加載到您的登錄/註銷表單。