【发布时间】:2013-03-06 23:42:40
【问题描述】:
我有一个包含复选框数组的表单,我正在尝试检查数据库是否存在某个复选框值,如果不存在则将其插入数据库:
这是我当前的代码:
查看页面:
<form action="<?php echo site_url('test/post_form')?>" method="post">
<input type="text" name="full_name">
<input type="checkbox" name="subject[]" value="Algebra" >
<input type="checkbox" name="subject[]" value="Trigonometry" >
<input type="checkbox" name="subject[]" value="Geometry" >
<input type="submit" name="submit">
控制器页面:
public function post_form()
{
$post_data = array(
'subject'=>$this->input->post('subject'),
'full_name'=>$this->input->post('full_name'),
);
$this->load->model('subject_model');
if($this->subject_model->check_subject($post_data)===true)
{
$this->session->set_flashdata('msg', 'Already Exist');
redirect('test/error_page');
}
else
{
insert to database
}
}
模型页面:
public function check_subject($post_data=array())
{
extract($post_data);
foreach($post_data as $key=>$value)
{
$this->db->select('subject');
$this->db->where('subject',$value['subject']);
$this->db->where('full_name',$value['full_name']);
$this->db->from('subject_table');
$query=$this->db->get();
if ($query->num_rows() > 0)
{
return true;
}
else
{
return true;
}
}
示例场景:
- 假设 db 中存在三角函数,
- 如果我选中所有复选框并提交,它仍然会插入三角函数。
- 但是如果代数存在于 db 中,
- 我检查了所有的复选框,它说已经存在。
- 似乎只检查第一个值是否重复。
【问题讨论】:
-
那么实际的问题是什么?得到错误?不能正常工作?会发生什么?
-
为什么你定义你的
$post_data数组没有$this->input->post('subject')数组?我在任何地方都没有看到$this->input->post('dept')的任何输入数据...
标签: php codeigniter