2011-07-25 92 views
1

我知道類似的問題已被問到,但我仍然無法解決我的問題。當我的視圖加載時,我得到下面的錯誤,並且我知道$ id中有一個值。CI:未定義變量

消息:未定義的變量:ID 文件名:管理/ upload_form.php 行號:17

控制器:

public function getEventNameById($id) { 
      $q = $this->event_model->getEventNameById($id);    
      echo "Event Name: ".$q."</p>"; 
      $data['id'] = $id;    
      $this->load->view('admin/upload_form',array('error' => ' '), $data); 
} 

查看:

<body> 
<div> 
<?php echo $error;?> 
<p>Event Image:</p> 
<?php echo form_open_multipart('admin_upload/do_upload');?> 

<input type="file" name="userfile" size="20" /> 
<br /><br /> 
<input type="hidden" id="iEventID" name="iEventID" value="<?php echo $id;?>" /> 
<input type="submit" value="upload event image" /> <input type="button" value="close" 
onclick="window.close()"> 

</form> 
</div> 
</body> 

我需要的是能夠做到的是基於ID的查詢信息,然後將該ID傳遞給我的視圖,然後該視圖將ID傳遞迴不同的控制器功能用於更新數據庫中的記錄。換句話說,我需要始終堅持ID。

任何和所有的援助非常感謝。

回答

1

你正確傳遞視圖數據:

你的代碼傳遞3個參數:

$this->load->view('admin/upload_form', array('error' => ' '), $data); 
//    |  1   |   2   | 3 | 

您應該所有的數據傳遞給第二個參數:

$this->load->view('admin/upload_form', array('error' => ' ') + $data); 
//    |  1   |     2    | 

第三PARAM應該是一個布爾值,不管是否直接打印數據(默認爲false)或將其存儲在變量(true)中。

我只是用+運營商的陣列組合,但它很可能是清潔劑使用:

$data['error'] = ''; // Not sure why this is needed, but I assume it is 
$data['id'] = $id; 
$this->load->view('admin/upload_form', $data); 

發生了什麼事是你$data陣列沒有得到傳遞給視圖可言,因此未定義的變量。

參考:http://codeigniter.com/user_guide/libraries/loader.html

+0

真棒。感謝您設置我直。 – user464180