我正在使用Codeigniter 3制作客户CRUD应用程序。“添加客户”表单视图如下所示:
<div class="form-group <?php if(form_error('first_name')) echo 'has-error';?>">
<?php echo form_input('first_name', '', [
'type' => 'text',
'id' => 'first_name',
'class' => 'form-control',
'value' => '',
'placeholder' => 'First name',
]);
?>
<?php echo form_error('first_name'); ?>
</div>
该表单还对某些文本字段进行了验证。我希望估算的数据如果数据无效,将在提交后保留。我应该在上面的代码中添加什么?
答案 0 :(得分:0)
在form_input函数中,将值键设置为文本字段的set_value(),set选择set_select(),复选框设置set_checkbox(),单选按钮设置set_radio()。即使刷新页面,这也会在提交表单后重新填充。请参阅下面的示例,了解您的名字文本字段,其中我将值设置为set_value(&#39; first_name&#39;)。此函数在验证完成后将表单值设置在那里。
您可以看到更多验证规则here
<div class="form-group <?php if(form_error('first_name')) echo 'has-error';?>">
<input type="text" id="first_name" class="form-control" value="<?php echo set_value('first_name');?>" placeholder="First name" />
<?php echo form_error('first_name'); ?>
</div>
在您的控制器上,您必须在验证规则中设置first_name,如下所示
$this->form_validation->set_rules('first_name', 'First name', 'required');
您必须为每个字段设置此规则,即使它不是必需的或没有任何规则。您也可以将rules参数留空。
答案 1 :(得分:0)
据我所知,你可以在这里做两件事
使用AJAX意味着您可以检查filed validation + from validation,然后提交表单。所以你的数据一直持续到最后。
或
提交时将其保存到会话,然后将重定向加载回相应的字段。