2010-09-09 10 views
3

Я пытаюсь сделать гладкую функцию входа здесь =)Войти и остаться на этой странице?

Я хочу, чтобы «опыт входа в систему» ​​был плавным и бесшовным, поэтому я не хочу, чтобы пользователь «чувствовал», как будто он/она «перенаправлен» и снова возвращен на ту же страницу.

Так что процесс идет:

  1. пользователя посещений страницы X A
  2. X не авторизованы
  3. X давит на Вход БТН (который живет в в DIV вместе с формой)
  4. Вход поля и кнопки исчезают
  5. X опознан и до сих пор на странице а (без замечать «перенаправление»)

Спасибо за все ваши ответы!

+0

Вы обязательно захотите использовать AJAX для частичной загрузки информации (jQuery - это мой выбор). Можете ли вы дать нам некоторое представление о структуре страницы, которую вы используете (это простой html? Php? Asp.net? И т. Д.)? И обратите внимание на любую информацию, которая изменяется на основе аутентификации (кроме кнопок входа в систему), поэтому мы можем помочь с этим. – Delebrin

+0

Это приложение JAVA работает на GAE с GWT. –

+0

Так в чем ваш вопрос? –

ответ

1

Вы можете использовать jQuery.load для повторного запроса той же страницы (которая должна загружать правильный контент с момента создания сеанса). Он поддерживает загрузку части запрашиваемого документа.

Пример:

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

EDIT: Ой, извините, я думаю, что я неправильно понял. Я думал, что страница А имеет контент, доступный только для пользователей, прошедших проверку подлинности, и вы показывали форму входа в систему и хотели, чтобы правильный контент отображался после их аутентификации.

Если вы просто хотите асинхронно. login, вы можете добавить обработчик отправки в форму для входа, которая отправляет форму в какой-то скрипт обработчика входа, который возвращает, была ли попытка входа в систему успешной.

$("#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.

Смежные вопросы