【问题标题】:How to pass variable between views? Codeigniter如何在视图之间传递变量?代码点火器
【发布时间】:2013-05-09 00:30:23
【问题描述】:

这里是 Codeigniter 新手:

我想让用户单击某人个人资料中的按钮以向他们发送消息,我需要将变量从视图传递回控制器并传递到另一个视图,我该如何实现?第一个视图中的变量是 $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 视图中可用。感谢您的帮助!

【问题讨论】:

  • Sheikh 的意思是,您可以将任何变量传递给您从控制器中选择的任何视图。您已经将它加载到您的控制器中。不妨按照设计的方式使用系统。从技术上讲,您可以在第一个视图中包含第二个视图,但这超出了 CI 的标准使用范围,所以这不是一个好主意

标签: codeigniter codeigniter-2


【解决方案1】:

更改以下行

<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

【讨论】:

  • 您必须将变量从控制器传递到第二个视图。
  • 如何不通过 URI 传递变量,例如长 html 字符串?从视图 -> 控制器 -> 另一个视图?
  • 请@alex 澄清您的问题?
【解决方案2】:

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

查看

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多