2013-11-22 60 views
0

我很努力的讓我的頭很多,因爲太多的時間,我需要一些幫助:) 我有一個網站建立在Kohana,並希望動態地改變當用戶點擊一個按鈕或另一個按鈕時某些文本的內容。不知道我是否以正確的方式做,但這是我迄今爲止所做的(由於我是這個框架的新手)。Kohana:試圖動態地改變內容(不是整個頁面)

控制器:

類Controller_Homepage擴展Controller_General {

public $template = "template/widepage"; 

    public $textbuyer = array (
     'text1' => "homepage.buyer.bigtext1", //transfering language variable. 
     'text2' => "homepage.buyer.bigtext2", 
     //with more ... 
     ); 

    public $textseller = array (
     'text1' => "homepage.seller.bigtext1", 
     'text2' => "homepage.seller.bigtext2", 
     'text3' => "homepage.seller.bigtext3", 
     //with more ... 
     ); 
    public $thetext = array ("textbuyer"); //the defaul array is textbuyer 

公共職能action_index(){

 $this->content = View::factory("homepage") 
      ->bind('pagetext', $thetext); 


     if ($this->request->method() === Request::POST) { 
      $post= $this->request->post(); 
      if (isset($post['buyer'])){ 
       $thetext = $textbuyer;//gives rrorException [ Notice ]: Undefined variable: textbuyer 
      // arr::overwrite($thetext, $textbuyer); 
      }else if(isset($post['seller'])){ 
       $thetext = $textseller; 
       } 
     } 

} 

我的觀點的部分設置爲顯示我如何使用變量視圖:

 <div class="container_content"> 
      <div> 
       <p id='sline'><?php echo $pagetext['text1']; ?></p> 
      </div> 
      <div> 

無法獲取我的數組的內容到視圖中,當我單擊兩個按鈕中的一個時,此代碼給我以下錯誤:ErrorException [Notice]:Undefined variable:textbuyer。我做錯了什麼?爲什麼我得到我提到的錯誤? 謝謝!

回答

1

當你像這樣定義

public $textbuyer = ... 
public $textseller = ... 
public $thetext = ... 

他們是你的類的屬性變量。而且,由於他們是,你需要通過

$this->textbuyer 
$this->textseller 
$this->thetext 

只要您撥打同一個類中的方法與$this->methodName()而不是methodName()給他們打電話。

class Foo { 
    public $bar = "hello "; 
    public function foo() { 
     $bar = "world"; 
     print $this->bar.$bar; // hello world 
    } 
} 

這會工作得很好,你會得到錯誤,因爲你永遠無法定義$textbuyer(因爲你要調用$this->textbuyer)。

+0

謝謝kingkero,會試試這個,讓你知道結果。當它是一個私有變量而不是公共變量時,這會改變嗎?我的意思是我必須以同樣的方式給他們打電話嗎?謝謝! – user3019997

+0

不,這不會改變 – kero