【发布时间】:2014-07-06 22:15:58
【问题描述】:
我的项目中的表单很少,它们被提交到诸如 site.com/email => site.com/validate_email 之类的公共函数,但后来我意识到这不是我想要的。
现在我需要让他们自己提交,检查并显示验证错误。
这样做的适当方法是什么?检查$_POST 是否为空,如果帖子不为空,则调用我的新_validate_email(// 将返回真或假)?
或者其他不那么无聊的东西?:)
例如:
public function login()
{
$this->load->view('login');
}
public function login_validation()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email|trim|xss_clean|callback_validate_credentials');
$this->form_validation->set_rules('password','Password','required|md5');
if($this->form_validation->run())
{
//some stuff here
}
else
{
$this->load->view('login'); //or redirect()?
}
查看:
<?php $this->load->view('header'); ?>
<div class="form-container">
<?=$this->form_validation->validation_errors();?>
<?php
$form_atr = array(
'id' => 'form-set'
);
echo form_open('main/login_validation', $form_atr);//this should be 'main/login'
?>
<div class="header">
/*
here goes other parts of form
*/
</div><!--END form-container -->`
<?php $this->load->view('footer'); ?>
所以,基本上我需要结合login() 和login_validation(),但是这样当用户输入不正确时,我会重新加载具有相同 URL 的相同视图的页面并显示验证错误。
我尝试将验证代码放入显示表单的同一函数中,但我不知道如何重定向或重新加载视图以显示 val.errors(如果有)。
【问题讨论】:
标签: php forms codeigniter validation