2013-11-28 5 views
1

Использование Zoo Visitor ajax login или Ajax Auth, я хорошо управляю ajax login witn EE. Когда пользователь регистрируется, как обновить только div, который содержит: приветствую пользователя, который вы зарегистрировали.Ajax Войти, чтобы обновить только зарегистрированный div

<div class="Welcome"><span>{username}</span>&nbsp;<a href="/logout">Logout</a></div><br /> 

Вот зоопарк посетителей Ajax Войти Сценарий:

$(document).ready(function(){ 
          $('#loginForm').ajaxForm({ 
            dataType: 'json', 
            success: function(data) { 
              if (data.success) { 
                alert('You are now logged in. You can add additional actions in the js script.'); 
              } else { 
                alert('Failed with the following errors: '+data.errors.login); 
              } 
            } 
          }); 
        }); 

Я предполагаю, что я должен вставить код яваскрипта внутри:

alert('You are now logged in. You can add additional actions in the js script.'); 

Я все еще учусь JavaScript, используя

setInterval(function(){ 
    document.getElementById('info').innerHTML = 

Это хороший метод? У кого-то есть подсказки? Можно использовать функцию Expression Engine?

спасибо,

Stéphane

ответ

2

Предполагая, что ваш <div class="Welcome">...</div> уже существует на странице вы бы заменить

alert('You are now logged in. You can add additional actions in the js script.'); 

С

$('div.Welcome').html('<span>Welcome...</span>&nbsp;<a href="/logout">Logout</a>'); 

Однако, обратите внимание, что я удалил {username}. Когда пользователь посещает страницу во время выхода из системы, у пользователя нет имени пользователя. Когда они регистрируются через AJAX, страница не обновляется, поэтому имя пользователя все еще остается на стороне сервера. Zoo Visitor также не возвращает данные элемента с ним.

Возможно, вам будет лучше просто использовать обычный процесс регистрации, чем использовать AJAX, если вы пытаетесь делать подобные приложения.

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

{exp:http_header content_type="application/json"} 
{ "username": "{username}" } 

(Обратите внимание на использование http_header плагина.)

Сразу после успешного входа вы будете использовать AJAX, чтобы проверить этот шаблон, а затем подтвердить результаты. Если username имеет length, тогда вы знаете, что человек вошел в систему, и вы можете обновить свой приветственный div.

Или вы можете попробовать войти в систему через Open API от Ben Croker. По-видимому, его аутентификация возвращает данные члена, которые вы ищете, см. http://docs.eeopenapi.apiary.io/#authentication

+0

Большое спасибо за ваш ответ !! Это помогает мне понять, как лучше использовать javascript. И да, вы правы, лучше использовать обычный процесс регистрации. С уважением, Стефан –

+0

Да. JavaScript возникает в браузере, PHP на сервере, «AJAX», как правило, создает впечатление пользователя без видимых. Однако для разработчика может потребоваться немного больше работы. Это особенно касается AJAX, поскольку он не является синхронным, то есть если вы используете JavaScript для отправки/получения информации с сервера, остальная часть вашего скрипта не будет ждать ответа, а затем продолжит работу, он просто будет работать. – notacouch

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