drol55885602
2017-10-09 12:39
浏览 26
已采纳

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • doujupa7567 2017-10-09 12:45
    已采纳

    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);
    }
    
    打赏 评论
  • dongliang_bj2016 2017-10-09 12:41

    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.

    打赏 评论
  • dsh1956 2017-10-09 14:39

    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;
    
    打赏 评论

相关推荐 更多相似问题