我不知道我在验证时做错了什么。
这是我的控制器
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')
。
答案 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>');?>
在上面的代码中,第一次加载时,表单将显示数据库中的值。但是在失败的表单验证后返回时,它将显示用户输入。