2013-04-24 78 views

回答

5

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

实例链接

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

JavaScript示例(简单的例子在谷歌发现,许多例子在那里..)

$(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 ?> 
+0

AH! 'isXmlHttpRequest'就是我一直在寻找的东西!谢谢。 – aserwin 2013-04-24 13:39:28

+0

为了将来的参考,如果你已经提供了你的代码并用“如何禁用Ajax请求的布局”或类似的东西来指定你的问题,那么我会唠叨少得多;)这就是要求正确的问题;) – Sam 2013-04-24 14:07:42

+0

我是电脑程序编制员。编程首先是关于解决问题的。说实话,如果我对问题有清晰的把握,我一般不需要问这个问题。有时候,这是我们遇到的问题,我们需要帮助。 – aserwin 2013-04-24 20:46:01