如何使用GET参数,当我在验证笨表单域?(How do I validate a form fiel

2019-06-24 07:39发布

我有一个完美的工作,直到我换的形式到形式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罚款。

Answer 1:

对于笨3,你可以通过GET数组到set_data功能。 例如:
$this->form_validation->set_data($this->input->get());



Answer 2:

只需添加:

$_POST['states'] = $this->input->get('states');

只是之前验证表单验证态场

$this->form_validation->set_rules('states', 'states', 'required|trim');


Answer 3:

这个职位上的笨论坛表明, 表单验证不使用GET参数的工作 ,这是现在的样子笨的。



Answer 4:

正如你可以在Form_validation.php文件中看到,他们在课堂上的硬编码$ _ POST到处;-(

如果你想支持$ _GET为好,它很容易(和肮脏呜),你可以创建一个新的属性:

public function __construct($rules = array())
{
    $this->inputData = array_merge($_POST, $_GET);
    ...
}

和$这个 - 这个类无处不替换$ _ POST> inputData因为没有静态方法。

我知道这是不建议直接编辑文件的供应商,但实际上,你需要它,这样做;-)



Answer 5:

由于部分职位的笨发生了变化。 我认为GX的答案是正确的。

在用户手册中的说明,特别是部分验证的阵列(超过$ POST等) ,对我来说真是棒极了(今天的),这是非常简单的。

你这 - $> form_validation-> set_rules线之前,您指定数组被验证:

$data = array(
    'username' => 'johndoe',
    'password' => 'mypassword',
    'passconf' => 'mypassword');

$this->form_validation->set_data($data);


Answer 6:

试图做的正是类似的东西,但它归结为你的代码的结构。

  1. 与通常的POST方法提交表单。 这将允许你进行所有岗位验证。
  2. 然后使用重定向()将所有数据发送到不同的方法中,或使用“/”您的控制器之外。
  3. 最后,该方法在接收到所有的参数将处理数据库交易和其呈现给视图。

希望能帮助到你。



文章来源: How do I validate a form field in Codeigniter when using Get parameters?