使用codeigniter

时间:2015-10-20 06:17:01

标签: codeigniter validation

我不知道我在验证时做错了什么。

这是我的控制器

function update_user() {


$this->load->library('form_validation');

   $this->form_validation->set_rules('sirname', 'First Name', 'trim|required|alpha|min_length[3]|max_length[30]|xss_clean');
   $this->form_validation->set_rules('name', 'Last Name', 'trim|required|alpha|min_length[3]|max_length[30]|xss_clean');
   $this->form_validation->set_rules('email', 'Email ID', 'trim|required|valid_email');

    if ($this->form_validation->run() == FALSE)
    {
       // fails
      $this->load->view('update_view');
    } 

    else
    {
            $data = array(
                'surname' => $this->input->post('sirname'),
                'name' => $this->input->post('name'),
                'email' => $this->input->post('email'),
            );

            $this->Account_model->update_user(31,$data);

        $this->show_user();
        $this->session->set_flashdata('msg','<div class="alert alert-success text-center">You are Successfully Updated!</div>');
       redirect('home');
      }
}

这是我的观点

                    <form method="post" action="<?php echo base_url() . "account/update_user"?>" >


            <div class="form-group">
                <label for="name">First Name</label>
                <input class="form-control" name="sirname" placeholder="Your First Name" type="text" value="<?php echo $user->surname; ?>" />
                <span class="text-danger"><?php echo form_error('sirname'); ?></span>
            </div>

            <div class="form-group">
                <label for="name">Last Name</label>
                <input class="form-control" name="name" placeholder="Last Name" type="text"  value="<?php echo $user->name; ?>" />
                <span class="text-danger"><?php echo form_error('name'); ?></span>
            </div>

            <div class="form-group">
                <label for="email">Email ID</label>
                <input class="form-control" name="email" placeholder="Email-ID" type="text" value="<?php echo $user->email; ?>" />
                <span class="text-danger"><?php echo form_error('email'); ?></span>
            </div>



            <div class="form-group">
                <button name="submit" type="submit" class="btn btn-default" onclick="account.php">Update</button>
                <button name="cancel" type="reset" class="btn btn-default">Cancel</button>
            </div>
            <?php echo form_close(); ?>
            <?php endforeach; ?>
            <?php echo $this->session->flashdata('msg'); ?>

我需要显示数据库中的值,因为我正在为用户执行更新信息..所以我如何实现set_value('name')

3 个答案:

答案 0 :(得分:0)

首选是<div class=""> <!--result shown on the right part--> <table border="0" cellspacing="10" cellpadding="10"> {% for list in score %} <td bgcolor="#F0F0F0"> {{list.subject}}</td> <td bgcolor="#F0F0F0"> {{list.scor}}</td> ................. {% endfor %} </table> </div>

所以每个输入字段的值都是

form_error()

这意味着,如果表单错误,则回显value="<?php form_error("surname") ? echo set_value("surname") : echo $user->surname; ?> ?>" 否则回显数据库值。

答案 1 :(得分:0)

在您重定向到成功加载的家庭控制器中: $this->load->library('form_validation'); 没关系!

答案 2 :(得分:0)

您可以使用CI的内置set_value功能,该功能可让您设置表单字段的值。它有第二个(可选)参数,用于设置字段的默认值。

<? echo form_label('Last Name', 'name'); ?>
<input class="form-control"  name="name" id="name" type="text" value="<? echo set_value('name', $user->name) ?>">
<? echo form_error('name', '<span class="text-danger">','</span>');?>

在上面的代码中,第一次加载时,表单将显示数据库中的值。但是在失败的表单验证后返回时,它将显示用户输入。