我已经尝试了谷歌搜索,但没有解决,我的代码下面是插入前检查重复,当“tagnumber”字段已存在将去特定的页面,并没有插入到表,它的工作原理,但问题是虽然没有插入表格,但它不会去我想要的特定页面。下面Codeigniter - 表单验证不起作用
是我的条件语句问题:
如果数据上表单验证存在将执行不插入数据。
如果数据不存在表单验证将执行插入数据,但转到错误的页面(与存在数据页面相同的页面)。
我controoler:
function tambahSubmit()
{
$tagnumber = $this->input->post("tagnumber");
$this->myigniter_model->addData($tagnumber);
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
// field name, error message, validation rules
$this->form_validation->set_rules('tagnumber', 'tagnumber', 'trim|required|is_unique[inventorytag.tagnumber]');
$this->form_validation->set_rules('date', 'date', 'trim|required');
$this->form_validation->set_rules('employee', 'employee', 'trim|required');
$this->form_validation->set_rules('semnumber', 'semnumber', 'trim|required');
$this->form_validation->set_rules('quantity', 'quantity', 'required');
$this->form_validation->set_rules('area', 'area', 'trim|required');
if($this->form_validation->run() == false)
{
$this->load->view('YearEndStock/tampilan_input_gagal');
}
else
{
$this->myigniter_model->addData($tagnumber);
$this->load->view('YearEndStock/tampilan_input_sukses');
}
}
我的模型:
function addData($tagnumber)
{
// Added $this->db->escape() and limit 1 for Performance
$query = $this->db->query("SELECT tagnumber FROM inventorytag WHERE tagnumber = ".$this->db->escape($tagnumber)." limit 1");
$data = array(
'tagnumber' => $this->input->post('tagnumber'),
'date'=> date('Y-m-d H:i:s'),
'employee' => $this->input->post('employee'),
'semnumber' => $this->input->post('semnumber'),
'quantity' => $this->input->post('quantity'),
'area' => $this->input->post('area')
);
return $query->num_rows() == 0 ? $this->db->insert('inventorytag', $data) : false;
}
你有什么做的,你已经添加的代码在其他部分 $这个 - > myigniter_model-> addData($ tagnumber); 之前的表单验证 $ this-> myigniter_model-> addData($ tagnumber); – Nobita
如果插入已经完成,那么is_unique [inventorytag.tagnumber]验证失败,不会得到成功页面 – Nobita
我在else部分添加了代码$ this-> myigniter_model-> addData($ tagnumber);在表单验证之前$ this-> myigniter_model-> addData($ tagnumber)因为tagnumber先检查是否已经存在或不存在,如果存在将不会插入 – rio