如何在视图之间传递变量?笨

时间:2013-05-09 00:30:23

标签: codeigniter codeigniter-2

Codeigniter noob:

我想让用户点击某人的个人资料中的按钮以向他们发送消息,我需要将视图中的变量传递回控制器并进入另一个视图,我该如何实现这一目标?该变量在第一个视图中是$ username:

查看#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

我基本上想从我的第一个视图中获取$ username变量,并在user / send_message视图中使其可用。谢谢你的帮助!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

为什么不传递隐藏字段并将其发布到您的控制器。试试这个。

查看

<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; ?>"/>

CONTROLLER

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');
     }