【发布时间】:2015-07-12 09:21:01
【问题描述】:
我知道使用set_value() 在 CodeIgniter 表单中设置默认值,但是如果值未提交或在表单提交之前,我如何设置验证的默认值?
public function index($uri = NULL)
{
$this->load->helper('form');
$this->load->library('form_validation');
//pull from DB or Session
$data = array(
'Status' => 'users_default_status',
'Order' => 'users_default_order',
'Asc' => 'users_default_asc'
);
$this->form_validation->set_data($data);
$this->form_validation->set_rules('Status', 'Status', 'numeric|trim|required|strtolower');
$this->form_validation->set_rules('Order', 'Order', 'trim|required');
$this->form_validation->set_rules('Asc', 'Asc', 'trim|required|strtolower');
if ($this->form_validation->run() === FALSE) // validation failed
{
// validation failed but maintain submitted values in form/feedback
}else{
// validation successful, do whatever
}
}
因此,如果有表单提交,它使用 POST 值,如果没有,它使用默认值(但仍然经过验证)。我希望默认值可以逐个变量地工作,所以有些可以是默认值,有些可以是用户提交的。
【问题讨论】:
-
我认为 Codeigniter 不提供它。您应该通过代码检查值或扩展验证类
-
$this->form_validation->set_data($data); // 抛出错误?
标签: php forms codeigniter validation