我已从控制器发送一些$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();
答案 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);
}
}
希望这会有所帮助。