0

我有一个带有几个搜索选项的表单,例如复选框数组和单选按钮。通过使用表单验证库,我可以在提交后重新填充表单,如下所示:

echo form_checkbox('check_track[]', '1', set_checkbox('check_track[]', '1', TRUE));
echo form_dropdown('select_year', $options, set_value('select_year', '2013'), $attribs);

我还将所有表单选项(通过存储帖子)保存到会话用户数据中。如果 $_SERVER['REQUEST_METHOD'] !== 'POST' 是否可以从会话数据中重新填充所有字段,但要根据表单验证继续重新填充?

4

2 回答 2

0

更容易的可能是将表单生成与值生成分开。在您提供的代码段中,该值是直接从提交的表单中读取的。

我会建议你,在你的控制器或你的模型中生成一个数据结构,每个字段对应一个表单字段。对于每一个,该值要么是默认值,要么是存储在会话中的值,如果它与你的条件匹配,即:有效数据,而不是在 POST 之后,如果我理解你的话。

于 2012-07-12T22:41:07.773 回答
0

我最终只是假装在表单验证内容运行以使重新填充工作之前发生了 POST:

if(!isset($_POST['something']) && $this->session->userdata('something'))
{ 
        $_POST = $this->session->all_userdata(); 
}
$this->form_validation->set_rules('something', 'stuff', 'required');
.
.
.
于 2012-07-12T23:33:41.020 回答