我是codeigniter的新手,我正在尝试用户指南中的教程。但我只是陷入了一个地方。在表单验证的代码中。我正在尝试使用set_value属性的示例,但我的用户文本框没有返回任何内容。
在我看来,我添加了以下代码:
<?php echo validation_errors();?>
<?php echo form_open('form');?>
<table border="0">
<tr>
<td><h5>Username</h5></td>
<td><input type="text" name="username" value="" size="50" value="<?php echo set_value('username'); ?>" /></td>
</tr>
<tr>
<td><h5>Password</h5></td>
<td><input type="password" name="password" value="" size="50" accept=" <?php echo set_value('password'); ?>" /></td>
</tr>
<tr>
<td><h5>password Confirm</h5></td>
<td><input type="password" name="passconf" value="" size="50" /></td>
</tr>
<tr>
<td><h5>Email Addres</h5></td>
<td> <input type="text" name="email" value="" size="50" accept="<?php echo set_value('email'); ?>" /></td>
</tr>
<tr>
<td> </td>
<td><div><input type="submit" value="Submit" /></div></td>
</tr>
</table>
</form>
在我的控制器中添加了以下代码:
function index()
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('username','username','required|min_length[5]|max-length[10]|xss_clean');
$this->form_validation->set_rules('password','password','required');
$this->form_validation->set_rules('passconf','password confirmation','required');
$this->form_validation->set_rules('email','email','required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('myform');
}
else
{
$this->load->view('formsucces');
}
}
提前谢谢你。
答案 0 :(得分:3)
输入类型中有两个值属性..
试试这个......
<td><input type="text" name="username" size="50" value="<?php echo set_value('username'); ?>" /></td>
答案 1 :(得分:0)
CI和表单验证存在一些问题......
您需要自己的帮助程序,其中从指定字段的POST数组中获取值,以便您可以重新填充输入字段或textarea。如果表单验证处于活动状态,它将从验证类
中检索信息if (!function_exists('set_value')) {
function set_value($field = '', $default = '') {
$OBJ = & _get_validation_object();
if ($OBJ === TRUE && isset($OBJ->_field_data[$field])) {
return form_prep($OBJ->set_value($field, $default));
} else {
if (!isset($_POST[$field])) {
return $default;
}
return form_prep($_POST[$field]);
}
}
}
答案 2 :(得分:0)
此解决方案正常,最佳答案。顺便说一下,
之间有什么区别<?php echo set_value('field_name'); ?>
和
<?php echo @$_POST['field_name']; ?>