2013-05-18 47 views
0

我是CodeIgniter的新手。我試圖在點擊一個提交後再次輸出一個視圖,但視圖有一個來自控制器的變量,但是當我嘗試它時,它不起作用。在CodeIgniter中聲明一個函數以外的變量

<?php 
    class Site extends CI_Controller{ 

     public $data1['value'] = "What to insert"; 

     public function index(){ 
      $this->load->view('home',$this->data1); 
     } 

    public function get_product(){ 
      $data = array(
       'product_name' => $this->input->post('prod_name') 
      ); 
      $this->site_model->insert_product($data); 
      $this->load->view('home',$this->data1); 
     } 

    } 
?> 

這是我的觀點:

<div id="container"> 
<h1><?php echo $data1;?></h1> 

    <?php echo form_open('site/get_product'); ?> 

    <p> 
     <label for="product">Product Name </label> 
     <input type="text" id="product" name="prod_name" /> 
    </p>  

    <input type="submit" name="submit_but" value="submit"> 

<?php echo form_close(); ?> 

</div> 

get_product我需要再次調用視圖,但我知道它會是這樣的麻煩,如果我要在函數內部再次聲明。

錯誤:

Parse error: syntax error, unexpected '[', expecting ',' or ';' in C:\xampp\htdocs\code_igniter\application\controllers\site.php on line 9 
+0

「不起作用」是什麼意思? – deceze

+0

即時通訊有一個錯誤..對不起忘了包括..解析錯誤:語法錯誤,意外的'[',期待','或';'在第9行的C:\ xampp \ htdocs \ code_igniter \ application \ controllers \ site.php中 – Aoi

回答

1

__construct函數調用每次運行腳本時,所以你可以在這個函數添加您的常量值查看或其他用法。

<?php 
class Site extends CI_Controller{ 
    public $data1 = array(); 

    public function __construct() { 
     $this->data1['value'] = "bla bla"; 
    } 

    public function index(){ 
     $this->load->view('home',$this->data1); 
    } 

    public function get_product(){ 
     $data = array(
     'product_name' => $this->input->post('prod_name') 
     ); 
     $this->site_model->insert_product($data); 
     $this->load->view('home',$this->data1); 
    } 
} 
?> 
2

實際問題或錯誤的描述是模糊的,在最好的,但我想,這就是問題所在:

public $data1['value'] = "What to insert"; 

這不是一個有效的聲明屬性。如果您想將財產「$data1」聲明爲一個數組,那麼你可以這樣做:

public $data1 = array('value' => "What to insert");