在提交表单上向Codeigniter控制器发送后端数据(隐藏和不可编辑)

时间:2017-08-05 19:01:13

标签: php codeigniter codeigniter-3 php-5.6

我已从控制器发送一些$data进行查看。该视图包含<form>。如何将这个$data发送给控制器提交表单给控制器(同一控制器中的子功能)?

前:

控制器

class Register extends CI_Controller {
  function index(){
    $this->load->view('login', $data['data']);
  }

  function get_data(){
    $input_value = $this->input->post('bla');

    /*--- here is my point of question ---
    I wan't to call $data here and $data shuold same as $data at index()
    */
    $this->model_file->insert_data_and_input_value_to_DB($data, $input_value);
  } 

}

查看

// $data is ready 

echo form_open('register/get_data');
echo '<input name='bla' />';
echo '<input type='submit' value='SEND input value and $data TOO'/>
echo form_close();

1 个答案:

答案 0 :(得分:0)

你可以通过多种方式实现这一目标。其中一个在

之下
Simply change your view like this

    $data = array('a' => 'apple', 'b' => 'bag', 'c' => 'cat' );
    $data = base64_encode(serialize($data));

    echo '<form action="register/get_data" method="post">';
    echo '<input type="text" name="bla" />';
    echo '<input type="hidden" name="data" value="'.$data.'">';
    echo '<input type="submit" value="SEND"/>';
    echo '</form>';

像这样改变你的控制器

    class Register extends CI_Controller {
         function index(){
            $this->load->view('login', $data['data']);
         }

         function get_data(){
                $input_value = $this->input->post('bla');

                if ($_POST) {
                    print_r(unserialize(base64_decode($_POST['data'])));
                }
               $this->model_file->insert_data_and_input_value_to_DB($data, $input_value);
        } 

    }

希望这会有所帮助。