我是codeigniter的新手,我已尝试过所有内容,但我的表单仍未提交到数据库。
这是我的代码。我真的找不到我出错的地方了。
查看
<?= 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();?>
CONTROLLER
<?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');
}
}
MODEL
<?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 :(得分: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
所以休息所有字段都为null,你的表是否接受那些剩余字段的空值?
如果否,则设置一些默认值,
在控制器中
确保您已加载数据库:
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");
}
}
答案 1 :(得分:0)
尝试使用提交按钮。
<?php echo form_submit(array('id' => 'submit', 'value' => 'Submit')); ?>