Codeigniter 3表单:提交后保留数据

时间:2017-07-24 17:16:55

标签: php codeigniter

我正在使用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>

该表单还对某些文本字段进行了验证。我希望估算的数据如果数据无效,将在提交后保留。我应该在上面的代码中添加什么?

2 个答案:

答案 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)

据我所知,你可以在这里做两件事

  1. 使用AJAX
  2. 使用会话
  3. 使用AJAX意味着您可以检查filed validation + from validation,然后提交表单。所以你的数据一直持续到最后。

    提交时将其保存到会话,然后将重定向加载回相应的字段。