为什么codeigniter没有显示从控制器发送到变量的变量?

时间:2015-06-05 00:29:30

标签: php codeigniter

我想发送变量' $msg_notf'从我的控制器到我的视图,但每次我这样做,codeigniter返回错误"未定义的变量:msg_notf"

我的控制器,

public function send_message(){
  $this->load->model('model_student');
  $msg_send=$this->model_student->send_message($this->session->userdata('roll_no'));
  if($msg_send==true){
    $result['msg_notf']='message sent';
   $this->load->helper('url');
   redirect('http://localhost/CheckIn_System/index.php/student',$result);

}else{
    $result['msg_notf']='unable to send message';
 $this->load->helper('url');
redirect('http://localhost/CheckIn_System/index.php/student',$result);
}
}

在视图中,

echo $msg_notf;

4 个答案:

答案 0 :(得分:0)

在控制器

public function  __construct()
{
    parent::__construct();
    $this->load->helper('url');//load once Controller load
}

public function send_message()
{
    $this->load->model('model_student');
    $msg_send=$this->model_student->send_message($this->session->userdata('roll_no'));
    if($msg_send==true){
        $result['msg_notf']='message sent';
        $this->load->view('student',$result);//passing data to view

    }else{
        $result['msg_notf']='unable to send message';

        $this->load->view('student',$result);//passing data to view
    }
}

在视图中

foreach ($msg_notf  as $new_msg_notf)
{
echo $new_msg_notf['your_data_field'];//showing your data
}

答案 1 :(得分:0)

您的控制器可能如下所示:

    public function __construct(){
        parent:: __construct();
        $this->load->helper('url');
      }

    public function send_message(){
      $this->load->model('model_student');

      $msg_send=$this->model_student->send_message($this->session->userdata('roll_no'));

      if($msg_send==true){

        $result['msg_notf']='message sent';

       $this->load->view('path', $result); // path of the
       http://localhost/CheckIn_System/index.php/student

     }else{
        $result['msg_notf']='unable to send message';
        $this->load->view('path',$result);
    }
  }

答案 2 :(得分:0)

如果您想使用重定向,最好的想法是使用Flashdata。

是一次性会话var在您使用之前一直存在,然后被删除。

您需要致电:$this->load->library('session');

声明: $this->session->set_flashdata('item', 'value');

阅读: $this->session->flashdata('item');

答案 3 :(得分:0)

https://ellislab.com/codeigniter/user-guide/helpers/url_helper.html

redirect()函数对指定的URI执行“标头重定向”。可选的第二个参数允许您在“位置”方法(默认)或“刷新”方法之间进行选择。

如果要将数据传递到视图中,请使用

$this->load->view("View_file", $result);

并在视图页面上访问它

echo $msg_notf;

使用重定向功能,您应该使用Session(Userdata或Flashdata) 在这种情况下,首选Flashdata。