从一个函数中使用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');
}
}
}
请帮助我实现这一目标。
答案 0 :(得分:1)
通过使用会话,可以在同一个控制器中将变量从一个函数传递到另一个函数。在Codeigniter中,可以使用flashdata,如:
$this->session->set_flashdata('info', $MyVariable);
请记住,flashdata仅适用于下一个服务器请求,然后它将自动清除。 然后它可以检索为:
$var = $this->session->flashdata('info');
如果要将变量保留一个服务器请求,可以执行以下操作:
$this->session->keep_flashdata('info');
希望这能帮助遇到问题的人。