【问题标题】:is it possible to pass a variable when a link will toggle open a modal?当链接将切换打开模式时是否可以传递变量?
【发布时间】:2014-11-30 05:05:48
【问题描述】:

是否可以在切换打开模式的链接中传递变量?

我想用 $_GET 或 $_POST 来做

a data-toggle='modal' data-target='#myModal30' href=

【问题讨论】:

  • data-toggledata-target 是什么?
  • 我相信他正在使用 twitter bootstrap。

标签: php


【解决方案1】:

不,所有 PHP 服务器处理都在页面甚至为客户端加载之前完成。您需要 AJAX 来实现这一点,然后填充模式并启动它。

这最终取决于您的要求,无论您是希望在页面加载之前还是在页面加载之后调用它。

使用 Twitter Bootstrap 3.0 -- 我使用会话变量在页面加载之前调用模式,并用我自己的替换了默认的 javascript alert() 函数

模态设置示例

$_SESSION['_Modal'] = "Success!|##|Your changes have been successfully applied!";
header("Location: page/they/came/from.php");
die();

“/page/they/came/from.php”的内容

if (isset($_SESSION['_Modal'])) {
    $msg = addslashes($_SESSION['_Modal']);
    echo '<script>alert("'.$msg.'");</script>';
    unset($_SESSION['_Modal']);
}

用于替换 alert() 的 JavaScript:

function alert(msg) {

    $('#aModal').remove();

    var parts = msg.split("|##|");

    var modal = '<div class="modal fade" id="aModal" tabindex="-1" role="dialog" aria-labelledby="aModalLabel" aria-hidden="true">' +
                    '<div class="modal-dialog">' +
                        '<div class="modal-content">' +
                            '<div class="modal-header">' +
                                '<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>' +
                                '<h4 class="modal-title" id="aModalLabel">' + parts[0] + '</h4>' +
                            '</div>' +
                            '<div class="modal-body">' + parts[1] + '</div>' +
                            '<div class="modal-footer">' +
                                '<button class="btn btn-primary" data-dismiss="modal">Close</button>' +
                            '</div>' +
                        '</div>' +
                    '</div>' +
                '</div>';

    $('body').prepend(modal);
    $('#aModal').modal({
        //backdrop: 'static',
        //keyboard: false
    });


}

我也替换了 javascript confirm() 函数

示例链接

<a data-href='go/here/if/confirmed.php' data-confirm='Are you sure you wish to delete this?'>

confirm() 替换的 Javascript 代码

$('[data-confirm]').click(function(ev) {
    var href = $(this).attr('data-href');

    if (!$('#dataConfirmModal').length) {
        $('body').append('<div id="dataConfirmModal" class="modal fade" role="dialog" aria-labelledby="dataConfirmLabel" 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 id="dataConfirmLabel">Please Confirm</h4></div><div class="modal-body"></div><div class="modal-footer"><button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button><a class="btn btn-primary" id="dataConfirmOK">OK</a></div></div></div></div>');
    } 

    $('#dataConfirmModal').find('.modal-body').html($(this).attr('data-confirm'));
    $('#dataConfirmOK').attr('href', href);
    $('#dataConfirmOK').click(function() {
        $('#dataConfirmModal').fadeOut(300);
        return true;
    })
    $('#dataConfirmModal').modal({
        backdrop: 'static',
        keyboard: false
    });
    return false;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 2021-11-02
    相关资源
    最近更新 更多