如何将数组值从一个函数传递到另一个函数并发送它以使用Codeigniter查看页面?

如何将数组值从一个函数传递到另一个函数并发送它以使用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;