繁体   English   中英

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

[英]Codeigniter 3 form: keep data after submit

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

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

在您的form_input函数中,将键设置为文本字段的set_value(),将select设置为set_select(),将select设置为set_checkbox(),将单选按钮设置为set_radio()。 即使刷新页面,这也会在提交表单后重新填充您的内容。 请参阅以下示例,了解您的名字文本字段,其中将值放置为set_value('first_name')。 该函数在验证后将表单放回原处,在那里设置过帐值。

您可以在此处查看更多验证规则

   <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. 使用AJAX
  2. 使用会话

使用AJAX意味着您可以从验证中检查已提交的验证 +,然后提交表格。 因此,您的数据将保留到最后。

要么

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

根据Codeigniter 3官方文档,如果未提交表单,则此代码应如下所示以便保留输入字段数据:

<?php echo form_input('first_name', set_value('first_name'), [
   'type'  => 'text',
   'id'    => 'first_name', 
   'class' => 'form-control',
   'placeholder' => 'First name',
]);?>   

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM