2017-10-07 86 views
1

我是新来的codeigniter,我已经尝试了一切,但我的表单仍然没有提交到数据库。CodeIgniter 3:表单不提交

这是我的代码。我严重无法找到我出错的地方了。

VIEW

<?= form_open('forms/submit_shifter_form');?>    
<div id="form-interview-fill-mainform" class="form-group"> 
    <div class="container"> 
     <div class="col-sm-12"> 
      <div class="input-group"> 
       <label>Reason/s for shifting:</label> 
       <input type="text" class="form-control form-input" name="shifter_reason"> 
      </div> 

      <div class="col-sm-6"> 
       <div class="input-group"> 
        <label>Strengths:</label> 
        <input type="text" class="form-control form-input" name="shifter_strength"> 
       </div> 
      </div> 
      <div class="col-sm-6"> 
       <div class="input-group"> 
        <label>Weaknesses:</label> 
        <input type="text" class="form-control form-input" name="shifter_weakness"> 
       </div> 
      </div> 
     </div>   
    </div> 
<?php echo form_submit('submit','Confirm', 'class="btn btn-success btn-lg" id="submit"');?> 
<?php echo form_close();?> 

控制器

<?php 
defined('BASEPATH') or exit('No direct script access allowed '); 

class Forms extends CI_Controller { 
    public function session(){ 
    if($this->session->userdata('logged_in')){ 
     $session_data = $this->session->userdata('logged_in'); 
     $data['id'] = $session_data['id']; 
     $data['username'] = $session_data['username']; 
     $data['password'] = $session_data['password']; 
     return $data; 
    } 
} 
    public function submit_shifter_form(){ 
     $shifter = array(
      'course' => $this->input->post('shifter_course'), 
      'reason' => $this->input->post('shifter_reason'), 
      'strength' => $this->input->post('shifter_strength'), 
      'weakness' => $this->input->post('shifter_weakness'), 
      'futureContribution' => $this->input->post('shifter_contribution') 
     ); 
     $session_data = $this->session->userdata('logged_in'); 
    $id = $session_data['id']; 
     $this->load->model('forms_model'); 
     $this->forms_model->shifter_form_submit($id,$shifter); 
     redirect(site_url('profile'), 'refresh'); 
    } 

} 

模型

<?php 
defined('BASEPATH') or exit('No direct script access allowed '); 

class Forms_Model extends CI_Model{ 
    function shifter_form_submit($id,$shifter) 
    { 
     $this->db->insert('tbl_prototype_shifter',$shifter); 
      $insert_id = $this->db->insert_id(); 
      $shift = array(
      'studentId' => $id 
      ); 
      $this->db->where('id', $insert_id); 
      $this->db->update('tbl_prototype_shifter', $shift); 
    } 

} 

我的其他形式提交适当的在我的数据库中的数据,之后我加入这个新的形式,我看起来像它不再正确提交。请,能有人帮助,我想不通我哪里错了

+0

您的提交按钮在哪里? –

+0

我刚刚编辑它,对不起 –

+0

你确定'<?='打印表单标签吗? –

回答

2

你有

$shifter = array(
      'course' => $this->input->post('shifter_course'), 
      'reason' => $this->input->post('shifter_reason'), 
      'strength' => $this->input->post('shifter_strength'), 
      'weakness' => $this->input->post('shifter_weakness'), 
      'futureContribution' => $this->input->post('shifter_contribution') 
     ); 

但是在窗体中有,

shifter_reason 
shifter_strength 
shifter_weakness 

所以休息所有字段为空,是你的表接受空的剩余字段?

如果没有再设置一些默认值,

在控制器

确认您加载数据库:

function __construct() { 
    parent::__construct(); 
    $this->load->database(); 
    $this->load->model('forms_model'); 
    $this->load->helper('form'); 
} 

,并在你的另一种方法,

$session_data = $this->session->userdata('logged_in'); 
$this->forms_model->shifter_form_submit($session_data['id'],$shifter); 

在型号中,

function shifter_form_submit($id,$shifter) 
{ 
     // try to insert 
     $this->db->insert('tbl_prototype_shifter',$shifter); 

     // check if insert was ok 
     if($this->db->affected_rows() > 0) 
     { 
       // if ok get last insert id 
       $insert_id = $this->db->insert_id(); 

       // data to be updated 
       $shift = array(
         'studentId' => $id 
      ); 

       // update 
       $this->db->where('id', $insert_id); 
       $this->db->update('tbl_prototype_shifter', $shift); 
     }else{ 
       // failed to insert, so cannot update other table too 
       echo $this->db->_error_message(); 
       throw new Exception("Can't insert the resource"); 
     } 

} 
+0

我在其他地方添加了一个提醒,仍然没有。我检查了错字的情况下的文件名,仍然没有提交 –

+0

@ domin0101看到我的更新 –

+0

我试过了,仍然没有提交 –

0

试试这个insted你的提交按钮。

<?php echo form_submit(array('id' => 'submit', 'value' => 'Submit')); ?>