Codeigniter:在控制器中将post变量从一个函数传递给另一个函数

时间:2015-09-26 13:54:17

标签: php codeigniter

从一个函数中使用post(search_results)的视图中获取一个名为$ msisdn的变量。在进行处理之后,我想在另一个函数(assign_role)中使用相同的变量,我无法做到这一点,因为我收到此错误

  

严重性:通知消息:未定义的变量:msisdn

。下面是我的search_result函数,其中获取了帖子数据:

public function search_results(){

    $msisdn =  $this->input->post('search_data');//getting data from the view


    if ($msisdn == false){

        $this->load->view('add_publisher');

    } else{
        $this->assign_role($msisdn); //passing the variable to another function

        $this->load->model('search_model');


        $data['result'] = $this->search_model->search_user($msisdn);
        $data1['box'] = $this->search_model->search_select($msisdn);

        $result = array_merge($data, $data1);  

        $this->load->view('add_publisher',$result);

        echo json_encode($result);
    }

} 

我想在下面这个函数中使用来自上面函数的$ msisdn:

public function assign_role($msisdn){

    //echo $msisdn['numm'];

    $publisher = $this->input->post('select');

    if ($publisher == false) {

        $this->load->view('add_publisher');

    } else {

        $data = array(
           'publisher' => true,
        );

        $this->load->model('insert_model');

        $data1 = $this->insert_model->search_group($msisdn, $data);             

            if ($data1 == true) {

                echo "Recorded updated succesfully";
                $this->load->view('add_publisher');

            } else {

                echo "Recorded not updated";
                $this->load->view('add_publisher');

            }

    }

}

请帮助我实现这一目标。

1 个答案:

答案 0 :(得分:1)

通过使用会话,可以在同一个控制器中将变量从一个函数传递到另一个函数。在Codeigniter中,可以使用flashdata,如:

$this->session->set_flashdata('info', $MyVariable);

请记住,flashdata仅适用于下一个服务器请求,然后它将自动清除。 然后它可以检索为:

$var = $this->session->flashdata('info');

如果要将变量保留一个服务器请求,可以执行以下操作:

$this->session->keep_flashdata('info');

希望这能帮助遇到问题的人。