2010-09-09 33 views
3

我想在這裏做一個圓滑的登錄功能=)登錄並保持在同一頁面上?

我想「登錄體驗」是平滑和無縫的,所以我不希望用戶「感覺」他/她正在「重定向」並重新回到同一頁面。

所以過程進行:

  1. 用戶X訪問網頁A
  2. X是不是在登錄BTN
  3. X印刷機(即在一個div與表單一起住在一)登錄
  4. 登錄框和按鈕消失
  5. X登錄成功,而且還是第A(無需考慮「重定向」)

謝謝你的答案!

+0

你肯定會想使用AJAX來進行信息的部分加載做到這一點(jQuery的是我的選擇)。你能給我們一些關於你正在使用的頁面結構的想法嗎(是純HTML嗎?php?asp.net?等等)?並且請注意任何基於身份驗證而改變的信息(登錄按鈕除外),以便我們可以提供幫助。 – Delebrin 2010-09-09 21:19:39

+0

這是一個使用GWT在GAE上運行的JAVA應用程序。 – 2010-09-10 08:58:43

+0

那麼你的問題是什麼? – 2012-04-02 11:52:04

回答

1

您可以使用jQuery.load重新請求同一頁面(因爲創建會話是應加載正確的內容)。它支持加載部分請求的文檔。

例子:

function onSuccessfulLogin() { 
    $("#content").load(window.location.href + " #content"); 
} 

編輯:哎呀,對不起,我想我誤解了。我認爲頁面A的內容只對經過驗證的用戶可見,而且您正在顯示登錄表單並希望在驗證後顯示正確的內容。

如果你只是想異步。登錄,您可以將提交處理程序添加到登錄表單,該表單將表單提交給某種登錄處理程序腳本,以返回登錄嘗試是否成功。

$("#loginform").bind("submit", function() { 
    $.ajax({ 
     url: "login.php", 
     method: "post", 
     cache: false, 
     dataType: "json", // for example 
     data: $(this).serialize(), 
     success: function (data) { // data is the JS object based on the JSON returned 
      if (data.success) { 
      $(this).fadeOut(); 
      } else { 
      alert("bad login: "+data.error); 
      } 
     } 
    }); 

    return false; 
}); 
0

我使用Ajax登錄系統解決了這個問題,該系統在成功登錄後重新加載頁面。如果您不想重新加載當前頁面,則需要基於JavaScript的系統來顯示和隱藏登錄狀態。 (雖然我認爲這可能複雜化的進一步發展),你可以做到這一點

0

的一種方法,是使用一些AJAX和含有所需的登錄字段和提交按鈕一個模式對話框。您可以使用Dojo對話框dijit進行靈活的實施。

相關問題