如何将数组值从一个函数传递到另一个函数并发送它以使用Codeigniter查看页面?
问题描述:
I am getting array value from model and that value I have to pass the other function
Controller
First function
public function example_from_view(){
$int_id = $this->session->userdata['int_url_id']['int_id'];
$result['data']=$this->formbuilder_Model->check_example_form_builder_fields($int_id);
print_r($result['data']); //I have to pass this array to second function so I tried $this->new_example_added($result);
$this->load->view('user-example-form',$result);//passing elements to the view page
}
Second function
public function new_example_added($result)
{
print_r($result['data']);
$this->load->view('user-example-form', $result);
}
View
foreach ($data as $key) {
echo $exp_fields_name=$key->fields_name;
}
But I am getting in view page undefined variable: data and Undefined variable: result
.
I want to use without a session. Would you help me out in this?
答
Change First function code
public function example_from_view(){
if(isset($this->input->post('SUBMIT_BUTTON_NAME'))){
//do your validation here
}
$int_id = $this->session->userdata['int_url_id']['int_id'];
$data = $this->formbuilder_Model->check_example_form_builder_fields($int_id);
//print_r($result['data']); //I have to pass this array to second function so I tried $this->new_example_added($result);
$result['data'] = $data;
$this->load->view('user-example-form',$result);//passing elements to the view page
}
Remove this function,
public function new_example_added($result)
{
//print_r($result['data']);
$data['data'] = $result;
$this->load->view('user-example-form', $data);
}
答
I would recomment that you should not load the view from 1st function. You should just pass the $result
array to the other function new_example_added
and then load view from there. Which is done in correct way.
答
Its Very Simple Add Second Function in First Function like this ..
IN the contorller
class Test extends CI_Controller{
public function one(){
$data['result'] = array(
'one' => '1',
'two' => '2',
'three' => '3'
);
#calling Second function
$data['view'] = $this->second($data);
$this->load->view('testview', $data);
}
public function second($data)
{
$data = array(
'four' => '4',
'five' => '5',
'six' => '6'
);
return $data;
}
}
Then in view page
foreach($result as $res):
echo $res."<br/>";
endforeach;
foreach($view as $res):
echo $res."<br/>";
endforeach;