2013-04-24 77 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