我想知道如果用户在未记录时执行操作,则使用哪个逻辑来显示登录模式。方案示例:
用户A在网站上登录,他打开另一个页面并注销,他回到上一页登录并在ajax中写了关于shoutbox的评论。用户未被记录,应该显示一个模式(如果可能的话,使用bootstap),并使用表单登录。
显然,检查是用PHP完成的,一切都已完成,我不知道如何调用模态并在检查php后打开它是否失败。
我认为是一个解决方案,比如将模态放在所有页面中,并在ajax的结果后用$('#modal').modal('show');
调用它,但我认为不是正确的解决方案将该模态放在所有页面中,也许在那里是一种动态调用它的方法
答案 0 :(得分:1)
这种方法在很大程度上取决于你使用的是什么。
我是一名symfony2粉丝,如果用户没有登录,我会返回成功消息或包含模态的渲染视图。
在前端,我只需要检查是否返回成功消息,否则eval()消息,以便显示渲染视图。
这样,无论您调用该操作的哪个页面,如果用户未登录,您将获得模态作为响应。
答案 1 :(得分:1)
以下是您可以尝试的内容,
$.ajax({
// your ajax code, in php file you check session if not return NotLoggedIn message
success:function(data) {
if(data == 'NotLoggedIn') {
$('#modalbody').html('here is the html of your login form');
$('#modal').modal('show');
} else {
// other code
}
}
});
答案 2 :(得分:1)
您可以在js文件中包含以下javascript代码以及其他人js libs,
function showModal(message, closeCaption, options) {
$(document).ready(function () {
var modalDialogHTML = '<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">' +
'<div class="modal-dialog">' +
'<div class="modal-content">' +
'<div class="modal-header">' +
'<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h4 class="modal-title">Modal title</h4>' +
'</div>' +
'<div class="modal-body">' + message + '</div>' +
'<div class="modal-footer">' +
'<button type="button" class="btn btn-default" data-dismiss="modal">' + (closeCaption ? closeCaption : 'Close') + '</button>' +
'</div>' +
'</div>' +
'</div>' +
'</div>';
$('body').append(modalDialogHTML);
$('#myModal').modal(options);
});
}
然后你可以动态调用showModal("the message");
当您检测到未登录的用户时。
答案 3 :(得分:0)
使用Cookie,用户注销时,Cookie过期。创建一个包含登录模式代码的php文件,并放在<?php include("login-modal.php")?>
等每个页面上。然后在用户添加注释时设置,运行jquery以检查用户是否已登录。如果没有那么打开模态登录