Php CodeIgniter:随<;输入>;表单验证失败

Php CodeIgniter:随<;输入>;表单验证失败,php,forms,codeigniter,validation,Php,Forms,Codeigniter,Validation,我对CodeIgniter有以下问题: -单击表单中的“提交”按钮时,表单已提交并正确验证 -当我不点击提交按钮,只点击,表单验证总是失败 有解决办法吗?这是CI表单验证中的缺陷还是我遗漏了什么 我有什么代码: --- the form view --- form_open("/"); ...some inputs... echo form_submit('submit', 'Přihlásit'); form_close(); ... --- the controller --- $th

我对CodeIgniter有以下问题: -单击表单中的“提交”按钮时,表单已提交并正确验证 -当我不点击提交按钮,只点击
,表单验证总是失败 有解决办法吗?这是CI表单验证中的缺陷还是我遗漏了什么

我有什么代码:

--- the form view ---

form_open("/");
...some inputs...
echo form_submit('submit', 'Přihlásit');
form_close();
...

--- the controller ---

$this->CI->load->helper('form');  
$this->CI->load->library('form_validation');

$this->CI->form_validation->set_rules('id_uziv', 'ID', 'required');   
$this->CI->form_validation->set_rules('heslo', 'Heslo', 'required');  
//... see, no rules have anyhting to do with the submit button

if ($this->CI->form_validation->run() == FALSE) {
  // validation OK
}
else {
  // validation failed
}

您没有回显
form_open('/')


表单元素不会包含在
元素中,因此当您提交时,不会向服务器发送post数据,从而导致验证失败。

我通过为提交按钮添加一个空的验证规则来解决此问题,如下所示:

$this->CI->form_validation->set_rules('submit_button', 'Submit', '');

现在它起作用了。我真的不知道是什么原因导致了这个问题。

大致上,你在那里写的东西对我来说,只需点击一下
就可以了。您可能需要发布一个小的工作示例(刚好足够的控制器和视图),以明确再现问题。事实上,从我看到的情况来看,你发布的代码根本不起作用(你没有回显form_open()和form_close()的结果,所以你甚至无法在HTML中获得表单元素输出…)Matt:我制作了一个小的工作示例,它可以工作-这很奇怪(需要编辑这些内容才能在服务器上运行它:在.htaccess中重写base,$config['base_url']在system/application/config/config.php中)在我引用的真实代码中,它被错误地忽略了。我编辑文章是为了让代码显示为代码,而不是文本。这里的文本编辑器非常糟糕。对不起。@inboder文本编辑器中有一个“code”按钮——高亮显示代码并点击它,您选择的所有内容都将被格式化为代码。