2012-05-29 3 views
1

В настоящее время у меня есть <ul> в моей навигационной области, которая содержит <%= render :partial => "sessions/manager" %>, которая в основном вызывает другое частичное, которое в зависимости от статуса входа в систему отображает форму входа или приветственное заявление.Обновление DIV в зависимости от статуса подписанного статуса?

В моей секции входа работает ajx и поэтому обновляется автоматически. Вот код im, использующий.

login.js

$(document).ready(function() { 

    $('form#sign_in').bind('ajax:success', function(e, data, status, xhr) { 
    console.log(data); 
    if(data.success) { 
     $('.user_nav').html(data.content); 
    } else { 
     $('.user_nav').prepend(data.errors.join('<br />')); 
    } 
    }); 

}); 

Теперь я хочу другой DIV на мою страницу, содержащую различные ссылки либо скрыть или показать в зависимости от пользователей, зарегистрированных в статусе.

В настоящее время мой код таков.

<% if(signed_in?) %> 
    <li><%= link_to "Clients", "/clients" %></li> 
    <li><%= link_to "Jobs", "/jobs" %></li> 
<% else %> 
<% end %> 

Однако, это не работает, как id. Сначала ссылки не показывают, что это круто, но ссылки не отображаются снова, когда я вступил в систему ... если только я не обновляю всю страницу.

Как я могу использовать этот раздел?

ответ

0

использовать свойство видимости CSS, что менее безопасно, потому что любой может видеть ссылки в исходном коде, но будет работать плавно.

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

+0

как бы перезагрузить страницу с помощью javascript? Не могу ли я просто перезагрузить элемент класса div/li? – Keva161

+0

Целевая страница может быть перезаписана разными способами. –

+0

window.location.href = "Type_URL_of_Current_Page" , и если только часть, если HTML, то –

1

Ваш пример не работает, так как сервер должен повторно отобразить страницу, чтобы пройти signed_in?

Я бы порекомендовал избавиться от входа в ajax и просто сделать обычный прием и перезагрузить страницу без ajax. Если вы все еще хотите использовать Ajax, там будет возможность сделать перезагрузки страницы с JavaScript:

window.location.href=window.location.href 

или

window.location.reload() 

Но вы также можете сделать нормальный представить, и все должно работать хорошо.

Никогда не делайте этого с видимостью css! Это действительно небезопасно, а не хорошее программирование. Сервер должен проверить и отправить правильный html пользователю, в зависимости от того, вошел ли он в систему или нет.

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