2013-05-09 69 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'); 
    }