2013-05-09 71 views
4

笨菜鳥在這裏:如何在視圖之間傳遞變量?笨

我不想讓用戶點擊,以便向他們發送消息中某人的個人資料的按鈕,我需要從視圖傳遞變量返回給控制器,進入另一種觀點認爲,如何我能完成這個嗎?該變量是在第一觀看$用戶名:

查看#1:(這部作品)

<a href="<?php echo base_url().'user/user_message';?>"> 
     <button type="submit" class="btn btn-info btn-small" title="Send Message" >Send Message</button> 
     </a> 

<h3><?php echo $username;?>- Public Profile</h3> 

控制器:

public function user_message($username) 
{ 
    if($this->form_validation->run() == FALSE) 
    { 
     $this->load->view('header_loggedin'); 
     $this->load->view('user/send_message', $username); 
     $this->load->view('footer'); 
    } 
    else 

我基本上是想從我第一次搶$用戶名變量在user/send_message視圖中查看並使其可用。謝謝你的幫助!

+0

本質上講謝赫的意思是,你可以通過任何增值經銷商向您從控制器選擇的任何意見。您已經將它加載到您的控制器中。不妨按照設計的方式使用系統。從技術上講,你可能會在第一個視圖中包含第二個視圖,但這會超出CI的標準使用範圍,因此它不是一個好主意 – 2013-05-09 00:40:49

回答

2

更改以下行

<a href="<?php echo base_url().'user/user_message';?>"> 

<?php echo base_url().'user/user_message/'.$username;?> 

所以,你public function user_message($username){ ... }將獲得$username,因爲它的參數。一旦你在你的控制器的方法得到它,那麼你可以將它發送到第二視圖時加載的觀點與其他數據,例如像

... 
$data['username'] = $username; 
$this->load->view('viewname', $data); 

然後你就可以在你的視圖中使用$username

+0

您必須將變量傳遞到控制器的第二個視圖。 – 2013-05-09 00:45:20

+0

我怎樣才能通過一個變量不通過URI,像一個長的HTML字符串?從視圖 - >控制器 - >另一個視圖? – alex 2015-09-18 16:40:24

+0

請清除您的問題,請@alex? – 2015-09-18 17:42:09

0

爲什麼不通過隱藏字段並將其發佈到您的控制器。嘗試這個。

VIEW

<a href="<?php echo base_url().'user/user_message';?>"> 
<button type="submit" class="btn btn-info btn-small" title="Send Message" >Send 
Message</button> 
</a> 
<input type="hidden" name="username" value="<?php echo $username; ?>"/> 

控制器

public function user_message() 
{ 
    $username = $this->input->post('username'); 
    if($this->form_validation->run() == FALSE) 
    { 
     $this->load->view('header_loggedin'); 
     $this->load->view('user/send_message', $username); 
     $this->load->view('footer'); 
    }