|
本帖最后由 80后奔三ing 于 2012-4-16 22:31 编辑
整个流程的想法是:用户在添加某字段内容时,首先到数据库验证该名称是否存在,如果存在就提示已存在,不存在就添加到数据库里面,我想不通过ajax的方法,之前用过set_rules里添加回调函数,以及form_validation->run()来做,但感觉这样有点麻烦。就想直接数据库判断了以后,向表单对应的字段的form_error传送错误信息。
代码如下:
一、视图页面代码:
<?php echo form_open('admin/user/department_add');?>
<p>
<label for="parent_department">上级部门</label>
<select name="parent_department" id="parent_department">
<option value="0">顶级</option>
<?php foreach ($department as $key=>$val){?>
<option value="<?php echo $key;?>">$val</option>
<?php }?>
</select>
</p>
<p>
<label for="department">部门名称</label>
<?php echo form_input('department',set_value('department'));?>
</p>
<?php echo form_error('department');?>
<p><?php echo form_submit('submit','添加部门');?></p>
二、控制器页面代码:
public function department_add()
{
$data['parent_id'] = $this->input->post('parent_department',TRUE);
$data['name'] = $this->input->post('department',TRUE);
if($this->User_Model->check_data_unique('name',$data['name'],'department'))
{
print_r($data);
}else
{
//设置提示department字段名称已存在!
}
}
三、模型页面代码:
public function check_data_unique($field_name,$field_val,$table_name)
{
$sql = "select `{$field_name}` from `{$table_name}` where `{$field_name}` = `{$field_val}`";
$query = $this->db->query($sql);
$row = $query->row();
return (empty($row->$field_name)) ? TRUE : FALSE;
}
|
|