[英]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参数留为空白。
根据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.