php codeigniter中的更新验证不起作用

php codeigniter中的更新验证不起作用,php,sql,codeigniter,Php,Sql,Codeigniter,我的控制器是main.php。控制器中有两个函数,第一个是update(),第二个是验证set_rules() 函数更新($id){ $this->load->library('form_validation'); $this->load->library('table'); //设置验证属性 $this->set_fields(); $this->set_rules(); //预填充表单值 $person=$this->personmodel->get_by_id($id)->row(); $

我的控制器是main.php。控制器中有两个函数,第一个是update(),第二个是验证set_rules()

函数更新($id){
$this->load->library('form_validation');
$this->load->library('table');
//设置验证属性
$this->set_fields();
$this->set_rules();
//预填充表单值
$person=$this->personmodel->get_by_id($id)->row();
$this->form\u validation->id=$id;
$this->form\u validation->name=$person->name;
$this->form\u validation->email=$person->email;
$this->form\u validation->address=$person->address;
$this->form\u validation->contact\u no=$person->contact\u no;
//设置公共属性
$data['title']='Update person';
$data['message']='';
$data['action']=站点url(“主/设置规则”);
$data['link_back']=anchor('main/members/','back to list of persons',array('class'=>'back');
//负载视图
$this->load->view('personEdit',$data);
函数集_字段(){
$this->load->library('form_validation');
$fields[]=数组(
'id'=>'id',
“名称”=>“名称”,
“电子邮件”=>“电子邮件”,
“地址”=>“地址”,
“联系人编号”=>“联系人编号”,
);
$this->form\u validation->set\u rules($fields);
}
公共函数集_规则(){
$this->load->library('form_validation');
$this->load->library('table');
$this->form_validation->set_规则('name','required | trim | xss_clean');
$this->form_validation->set_rules('email'、'required | valid | email |是唯一的[users.email]| trim | xss | u clean | callback | validate | credentials');
$this->form_validation->set_规则('address'、'required | | alpha_dash_space');
$this->form_validation->set_规则('contact_no'、'required'numeric');
$this->form_validation->set_message('is_unique',“*该电子邮件地址已经存在”);
$this->form_validation->set_message(“'u alpha_dash_space'”,%s字段只能包含字母数字字符、空格、下划线和破折号。“);
$this->form_validation->set_message('required','*required');
$this->form\u validation->set\u error\u分隔符(“

”,“

”); $this->form_validation->set_message('isset','*required'); //运行验证 如果($this->form\u validation->run()){ $id=$this->input->post('id'); $person=array('name'=>$this->input->post('name'), 'email'=>this->input->post('email'), 'address'=>this->input->post('address'), 'contact_no'=>this->input->post('contact_no')) ); $this->personmodel->update($id,$person); //设置用户消息 $data['message']='updateperson success'; 重定向(“主要/成员”); //$data['message']=''; }否则{ $this->form_validation->set_message('error in update'); }
我的观点:personEdit.php

             <form method="post" action="<?php echo $action; ?>">
    <div class="data">

    <table>
        <tr>
            <td width="30%">ID</td>
            <td><input type="text" name="id" disabled="disable" class="text"value="<?php echo $this->form_validation->id; ?>"/></td>
            <input type="hidden" name="id" value="<?php echo $this->form_validation->id; ?>"/>
        </tr>
        <tr>
            <td valign="top">Name<span style="color:red;">*</span></td>
            <td><input type="text" name="name" class="text" value="<?php echo $this->form_validation->name; ?>"/>
            <?php echo form_error("name"); ?></td>
        </tr>
        <tr>
                         <td valign="top">Email<span style="color:red;">*</span></td>
            <td><input type="text" name="email" class="text" value="<?php echo $this->form_validation->email; ?>"/>
            <?php echo form_error('email'); ?></td>
        </tr>
        <tr>
            <td valign="top">Address<span style="color:red;">*</span></td>
            <td><input type="text" name="address" class="text" value="<?php echo $this->form_validation->address; ?>"/>
            <?php echo form_error('address'); ?></td>
        </tr>
        <tr>
            <td valign="top">Contact No<span style="color:red;">*</span></td>
            <td><input type="text" name="contact_no" class="text" value="<?php echo $this->form_validation->contact_no; ?>"/>
            <?php echo form_error('contact_no'); ?></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td><input type="submit" value="Save"/></td>
        </tr>
    </table>
    </div>
    </form>

如果set_rules函数中没有参数,请尝试在此处添加$fields

公共函数集\规则($fields){

后来

// run validation
if ($this->form_validation->run($fields)){
// run validation
if ($this->form_validation->run($fields)){