我有一个完美的工作,直到我换的形式到形式method="get"
。 现在,我不能让form_validation->run()
评估为TRUE。
这是我开的形式:
echo form_open( '', array( 'method' => 'get' ) );
这是一个需要验证的唯一的一块:
$this->form_validation->set_rules( 'states', 'states', 'required' );
这就是我如何检查,看看是否形式进行验证:
if( $this->form_validation->run() == FALSE )
有没有别的东西,我需要做的,用获得的参数? 我已经得到的参数在config打开( $config['allow_get_array'] = TRUE;
如果我跳过验证的形式工作正常,所以我知道CI系统读取URL罚款。
对于笨3,你可以通过GET数组到set_data
功能。 例如:
$this->form_validation->set_data($this->input->get());
只需添加:
$_POST['states'] = $this->input->get('states');
只是之前验证表单验证态场
$this->form_validation->set_rules('states', 'states', 'required|trim');
这个职位上的笨论坛表明, 表单验证不使用GET参数的工作 ,这是现在的样子笨的。
正如你可以在Form_validation.php文件中看到,他们在课堂上的硬编码$ _ POST到处;-(
如果你想支持$ _GET为好,它很容易(和肮脏呜),你可以创建一个新的属性:
public function __construct($rules = array())
{
$this->inputData = array_merge($_POST, $_GET);
...
}
和$这个 - 这个类无处不替换$ _ POST> inputData因为没有静态方法。
我知道这是不建议直接编辑文件的供应商,但实际上,你需要它,这样做;-)
由于部分职位的笨发生了变化。 我认为GX的答案是正确的。
在用户手册中的说明,特别是部分验证的阵列(超过$ POST等) ,对我来说真是棒极了(今天的),这是非常简单的。
你这 - $> form_validation-> set_rules线之前,您指定数组被验证:
$data = array(
'username' => 'johndoe',
'password' => 'mypassword',
'passconf' => 'mypassword');
$this->form_validation->set_data($data);
试图做的正是类似的东西,但它归结为你的代码的结构。
- 与通常的POST方法提交表单。 这将允许你进行所有岗位验证。
- 然后使用重定向()将所有数据发送到不同的方法中,或使用“/”您的控制器之外。
- 最后,该方法在接收到所有的参数将处理数据库交易和其呈现给视图。
希望能帮助到你。