0

如何在 jquery 模态对话框中显示控制器操作?

4

2 回答 2

5

首先,您需要您的 Javascript 通过 ajax 加载 url,这将取决于您使用哪种模式等,那里有大量的库。我将假设您使用的是基本的 JQuery UI 对话框模式。

示例链接

<!-- this points to your action below.. -->
<a class="some-link" title="title here" href="mycontroller/test">testing</a>

示例 Javascript(在 google 上找到的快速示例,那里有很多示例..)

$(document).ready(function() {
    $('.some-link').each(function() {
        var $link = $(this);
        var $dialog = $('<div></div>')
            .load($link.attr('href'))
            .dialog({
                autoOpen: false,
                title: $link.attr('title'),
            });
    });
});

现在,您需要确保在通过 ajax 请求为模式提供内容时,您的操作不会呈现主布局。

这是一个非常简单的方法,将基本布局替换为 ajax 请求的空视图。这不是最好的方法,但在这种情况下它是最简单的;)

示例操作

public function testAction()
{
    if($this->getRequest()->isXmlHttpRequest()) {
        $this->layout('application/layout/ajax-layout');
    }

    return new ViewModel(array()); // ..
}

应用程序/布局/ajax-layout.phtml

<?php echo $this->content ?>
于 2013-04-24T13:32:17.593 回答
1

我想你想要这种代码http://jqueryui.com/dialog/#modal-message 里面只是显示你的动作

否则它将在您的模式中打开一个 url,就像http://blog.nemikor.com/2009/04/18/loading-a-page-into-a-dialog/

于 2013-04-24T13:33:02.400 回答