控制器
public function respondent_info()
{
$data['states'] = $this->survey_model->get_states();
$state = $this->session->store['loginData']['state'];
$financial_year = $this->session->store['loginData']['financial_year'];
$getData = $this->survey_model->get_page($state, $financial_year);
if ($getData == '1') {
$data['res_info'] = $this->survey_model->get_resinfo_details($state);
$this->load->view('edit_respondent_info', $data);
}else {
$this->load->view('respondent_info', $data);
}
if(isset($_POST['submit_x'])) {
$respondentArray = array(
'state' => empty($_POST['state']) ? '' : $_POST['state'],
'name' => empty($_POST['name']) ? '' : $_POST['name'],
'title1' => empty($_POST['title1']) ? '' : $_POST['title1'],
'dline' => empty($_POST['dline']) ? '' : $_POST['dline'],
'email' => empty($_POST['email']) ? '' : $_POST['email'],
'organization' =>empty( $_POST['organization']) ? '' : $_POST['organization'],
'address' => empty($_POST['address']) ? '' : $_POST['address'],
'city' => empty($_POST['city']) ? '' : $_POST['city'],
'state1' =>empty( $_POST['state1']) ? '' : $_POST['state1'],
'zip' => empty($_POST['zip']) ? '' : $_POST['zip'],
'phone' => empty($_POST['phone']) ? '' : $_POST['phone'],
'fax' =>empty( $_POST['fax']) ? '' : $_POST['fax'],
);
$this->session->set_userdata('respondent_info',$respondentArray);
$this->survey_model->auto_save_respondent_info( $_POST);
redirect('survey/budget_overview');
}
}
模型
function auto_save_respondent_info($post){
echo("auto");
$respondentArray = array(
'survey_id' => $this->session->store['survey_id'],
'state' => empty($_POST['state']) ? '' : $_POST['state'],
'name' => empty($_POST['name']) ? '' : $_POST['name'],
'title1' => empty($_POST['title1']) ? '' : $_POST['title1'],
'dline' => empty($_POST['dline']) ? '' : $_POST['dline'],
'email' => empty($_POST['email']) ? '' : $_POST['email'],
'organization' =>empty( $_POST['organization']) ? '' : $_POST['organization'],
'address' => empty($_POST['address']) ? '' : $_POST['address'],
'city' => empty($_POST['city']) ? '' : $_POST['city'],
'state1' =>empty( $_POST['state1']) ? '' : $_POST['state1'],
'zip' => empty($_POST['zip']) ? '' : $_POST['zip'],
'phone' => empty($_POST['phone']) ? '' : $_POST['phone'],
'fax' =>empty( $_POST['fax']) ? '' : $_POST['fax'],
);
$this->db->select('*');
$this->db->from('survey_respondent_info');
$this->db->where('state', $state);
$query = $this->db->get();
if ($query->num_rows() > 0)
{
echo("update");
// $this->db->where('state', $state);
// $this->db->update('survey_respondent_info', $resInfoArray);
}
else{
echo("insert");
// $this->db->insert('survey_respondent_info', $resInfoArray);
}
}
这里没有调用模型函数,我无法查看echo中给出的数据。如何调用它或如何将会话中存储的数据发送到模型,我知道我的代码中缺少某些内容,有人可以帮助我。感谢。
答案 0 :(得分:0)
[根据用户需求更新] 首先,您需要验证用户输入。您可以找到示例here。接下来,您必须在使用之前加载模型。您可以从控制器加载模型,如
$this->load->model('survey_model');
如果验证为真,您可以按如下方式调用保存功能:
$this->survey_model->auto_save_respondent_info();
您不必将会话或发布数据传递给您的模型。
您只需从
这样的模型中访问会话即可 function auto_save_respondent_info(){
$respondent_info = $this->session->userdata('respondent_info');
print_r($respondent_info);
...............
}
您可以从模型中访问帖子数据
function auto_save_respondent_info(){
print_r($_POST);
...............
}
由于您使用的是codeignitor,因此您可以使用$this->input->post('fieldname')
代替$ _POST。此外,您不必将发布数据保存到会话以传递它的模型。您可以在模型中访问$this->input->post('fieldname')
。您还应该在控制器中验证表单输入。
访问模型
中的帖子数据function auto_save_respondent_info(){
echo $this->input->post('state');
..........
}
我希望你明白这一点。