我有一个带有几个搜索选项的表单,例如复选框数组和单选按钮。通过使用表单验证库,我在提交后重新填充表单,如下所示:
echo form_checkbox('check_track[]', '1', set_checkbox('check_track[]', '1', TRUE));
echo form_dropdown('select_year', $options, set_value('select_year', '2013'), $attribs);
我还将所有表单选项(通过存储帖子)保存到会话userdata中。如果$ _SERVER ['REQUEST_METHOD']!=='POST',是否可以重新填充会话数据中的所有字段,但是否则会根据表单验证继续重新填充?
答案 0 :(得分:0)
更容易将表单生成与值生成分开。在您提供的代码段中,该值直接从提交的表单中读取。
我建议你,在你的控制器或你的模型中生成一个数据结构,每个字段对应一个表单字段。 对于每个值,该值可以是默认值,如果它与条件匹配则存储在会话中的值即:有效数据,如果我理解你的话,则不在POST之后。
答案 1 :(得分:0)
我最后假装在表单验证工作运行之前发生了POST,以便重新开始工作:
if(!isset($_POST['something']) && $this->session->userdata('something'))
{
$_POST = $this->session->all_userdata();
}
$this->form_validation->set_rules('something', 'stuff', 'required');
.
.
.