0

如果用户在未登录时执行操作,我想知道使用哪种逻辑来显示登录模式。带有场景的示例:

用户 A 在网站上登录,他打开另一个页面并注销,他回到上一个登录的页面并在 ajax 中对喊话框写评论。用户未登录,应显示带有登录表单的模式(如果可能,引导程序)。

显然检查是用php完成的,一切都完成了,我不知道如何调用模态并在检查php后打开它,如果它失败。

我想了一个解决方案,比如将模式放在所有页面中,并$('#modal').modal('show');在 ajax 的结果之后调用它,但我认为将模式放在所有页面中并不是正确的解决方案,也许有一种动态调用它的方法

4

4 回答 4

1

该方法很大程度上取决于您使用的是什么。

作为 symfony2 的粉丝,如果用户未登录,我将返回成功消息或包含模式的渲染视图。

在前端我只需要检查是否返回了成功消息,否则 eval() 消息以便显示渲染视图。

这样,如果用户未登录,从您调用该操作的任何页面,您都将获得模态作为响应。

于 2013-10-18T12:06:33.960 回答
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
       }
   }
});
于 2013-10-18T12:18:46.510 回答
1

您可以在 js 文件中包含以下 javascript 代码以及其余的 js 库,

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">&times;</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"); 当您检测到未登录用户时,您可以动态调用。

http://jsfiddle.net/v8USb/

于 2013-10-18T12:34:54.490 回答
0

使用 cookie,当用户注销时,cookie 会过期。创建一个包含登录模式代码的 php 文件,并将其放置在每个页面上,例如<?php include("login-modal.php")?>. 然后设置当用户添加评论时,运行一个 jquery 来检查用户是否已经登录。如果没有,则打开模态登录

于 2013-10-18T12:06:01.397 回答