2017-08-05 7 views
0

$dataをコントローラから表示しました。ビューには<form>が含まれています。この$dataをコントローラに送信するにはどうすればよいですか?バックエンドデータ(非表示および非編集可能)をCodeigniterコントローラに送信してください。

例:

コントローラ

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(); 
+0

インデックスメソッドに '$ data'配列を作成するにはどうすればよいですか? – Tpojka

+0

$データは、Googleの認証APIクライアントからログインGoogleによって送信されました。 $ dataにいくつかのGoogleレスポンスデータ(電子メール、Google+ ID)を設定しました。 –

+2

これらのデータは、データベースまたはファイルのいずれかのセッションで保持する必要があります。これは、同じリクエストについて話していない場合のためです。 – Tpojka

答えて

0

あなたは多くの方法でそれを行うことができます。そのうちの一つは、これが役立ちます。この

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); 
     } 

    } 

希望のような

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>'; 

変更しますコントローラーを下回っています。

関連する問題