2016-06-07 97 views
1

如何在不重新加載整個主視圖的情況下加載我的導航菜單的視圖?像模板或部分視圖。需要使用ajax來做到這一點嗎?怎麼會這樣?我對阿賈克斯瞭解得不多。有可能看到一個例子嗎?使用Codeigniter或模板或部分視圖的動態視圖

我打開我家的視圖控制器是這樣的:

$data = [ 
      'header_view'    => 'main/header', 
      'nav_view'     => 'main/nav', 
      'section_view'    => 'main/main_view', 
      'article_view'    => 'main/article', 
      'aside_view'    => 'main/aside', 
      'footer_view'    => 'main/footer', 
     ]; 

$this->load->view('home_view', $data); 

然後我從家裏視圖加載vievs:

<section> 
      <?=$this->load->view($section_view);?> 
</section> 
... 

而在導航視圖我想要把鏈接到不同部分無需重新加載導航視圖,因爲我將有一個樹結構和其他東西。

enter image description here

回答

1

你爲什麼不使用AngularJS補充的嗎?您可以使用ui-routes或ng-routes創建單個頁面應用程序。你可以調用你的控制器方法的ajax來渲染你的視圖,並且你可以在那裏顯示這個視圖。

+0

哦,我不知道AngularJS。我剛看到很多例子,我認爲它可以爲我工作。謝謝 ;) – Noark

0

編輯

爲了做一個頁面的iframe的網站,你需要建立一個控制器沒有別的

Controller -> loadpage($name) 

然後將其路由返回頁面不過你想

然後,創建一個ID爲

的iframe
<iframe name="maincontent"></iframe> 

顯然,添加您所需的樣式/屬性。

在你的鏈接,在目標

<a href="/url/page" target="maincontent">Link 1</a> 
+0

這將有加載整個頁面相同的問題,而不是任何部分保持其餘部分。 – Noark

+0

你能解釋一下你的意思嗎?或者給我一個更清晰的例子,說明你想要什麼? –

+0

對不起,我英語不好。我在網絡中同時有3個視圖。其中一個有第三個視圖加載內容的鏈接,但我不想更改第一個和第二個視圖的內容。我只需要重新加載第三個的內容。 – Noark