2013-08-05 61 views
-1

我工作的網站上,其中在右邊,我顯示動態內容的一些固定的類型像event calendarloginregister等右側欄的名字是right_view.php 所以,首先我在做這樣的,我是在控制器的各項功能發送參數,然後在我看來,我是通過調用這樣笨會話不包括在視圖控制器後工作

<?php $this->load->view('right_view');?> 

右視圖,則登錄後,我可以讓我的用戶名訪問右側參數存儲在會話中。 之後,我認爲這是不是一個好方法發送參數在每個功能我只是使控制器命名爲right.php和在此控制器我傳遞參數right_view.php,然後在我的看法我改變了我的代碼爲callig righr_view像這

<?php include(base_url().'right');?> 

它顯示正確的內容,因爲我上面做,但一個變化發生,我不能訪問右側欄中的任何會話存儲變量。 包含控制器後會話是否不工作?

回答

0

你基本上想要做一個模板系統,但以錯誤的方式去做。記錄不,我不認爲你可以(或者至少應該)將控制器加載到這樣的視圖中。

你想要的是一個模板文件是這樣的:

<?php 
    $this->load->view('templates/header', $title); 
    $this->load->view('templates/sidebar',$sidebar_content); 
    $this->load->view('pages/'.$main_content); 
    $this->load->view('templates/footer'); 
?> 

調用的template.php

然後在您的控制器,你會做這樣的事情:

public function welcome() 
{ 
    $data['main_content'] = 'welcome'; 
    $data['title']='Welcome to REfficient.com!'; 
    $data['sidebar_content'] = 'sidebar/no_sidebar'; 
    $data['additionalHeadInfo'] =''; 
    $this->load->view('templates/template',$data); 
} 

因此,如果您查看模板文件,第一行是加載標題幷包含要插入頁面的標題變量(標題,側邊欄,maincontent和footer都是他們自己的s獨立的PHP頁面)等等。

現在我做了什麼(因爲我的佈局非常類似於你)是我的主要側邊欄文件有一個if語句說如果登錄show x,如果不顯示登錄表單。

注 - additionalHeadInfo變量是這樣的,我可以包含像jQueryUI或某個單獨的頁面上的東西,而無需將其加載到不需要的頁面上。

+0

我和你說的完全一樣。我正在做模板系統,但有一件事讓我感到困擾的是,在右側,我有一些動態內容正在改變,並且一些內容在經過一段時間後會隨着ajax文件而改變。 因此,如果我在每個函數中傳遞參數,例如您在歡迎函數中傳遞了我無法訪問該右側欄以正常工作 –

+0

可能是我的信息不明確,但基本上我面臨一個非常奇怪的問題,我需要簡短處理時間 –

+0

沒有任何理由在加載頁面後無法通過AJAX更改側欄的內容,我經常這樣做。只要確保您的側邊欄設置了適當的選擇器,以便從jQuery(或普通的js)輕鬆訪問內容。我不確定我看到了這個問題。 –