想象一下这样的表格:
<form action="test.php" method="post">
<input type="text" name="firstname" value="<?=set_value('firstname')?>" />
<input type="text" name="lastname" value="<?=set_value('lastname')?>" />
<input type="text" name="email" value="<?=set_value('email')?>" />
<input type="submit" name="submit_form" value="OK" />
</form>
如果我提交了错误的电子邮件,CodeIgniter函数将写入“该字段无效”并使用错误的值填充无效字段。
我想保留错误消息但不是错误的值(我更喜欢有空值)。但我也希望保持重新填充功能以获得正确的值。
这是我得到的:
这就是我想要的:
[编辑]解决方案(感谢Herr Kaleun和Matt Moore)
电子邮件字段示例:
<input type="text" name="email" id="email" value="<?=!form_error('email')?set_value('email'):''?>" />
答案 0 :(得分:1)
您可以单独检查字段并具有这样的逻辑。
如果存在特定字段的错误,您可以在其上构建逻辑。
if ( form_error('email') != '' )
{
$data['email_value'] = '';
}
else
{
$data['email_value'] = set_value('email');
}
<form action="test.php" method="post">
<input type="text" name="firstname" value="<?=set_value('firstname')?>" />
<input type="text" name="lastname" value="<?=set_value('lastname')?>" />
<input type="text" name="email" value="<?= $email_value; ?>" />
<input type="submit" name="submit_form" value="OK" />
</form>
答案 1 :(得分:1)
当表单值基于验证错误输出时,将设置Form_error。通过使用set_value函数来判断,我假设您正在使用内置表单验证。您可以检查该字段的消息是否设置为if(form_error('fieldname') !=NULL)
,并根据该值设置值。
您可能必须为每个字段设置错误消息,无论如何您都应该这样做。以下是涵盖该指南的指南:http://codeigniter.com/user_guide/libraries/form_validation.html#repopulatingform
<form action="test.php" method="post">
<input type="text" name="firstname" value="<?if(form_error('firstname') != NULL){echo set_value('firstname');}?>" />
<input type="text" name="lastname" value="<?if(form_error('lastname') != NULL){ echo set_value('lastname');}?>" />
<input type="text" name="email" value="<?if(form_error('email') !=NULL){ echo set_value('email');}?>" />
<input type="submit" name="submit_form" value="OK" />
</form>
* 注意此代码未经过测试*