这听起来像是一个奇怪的场景,但我在一页上有两个表格。一个只是发回给自己。我在另一个动作中发布了第二篇文章,以保持代码简洁。也许不是正确的选择...
我现在遇到的问题是,如果第二个表单未验证,我将重定向回包含该表单的页面,但我不知道如何让表单字段填写用户输入的原始信息。有没有办法做到这一点并继续发布到两个单独的操作,或者我是否需要硬着头皮让两个表单都发布回同一个操作并处理混乱的逻辑?
我会将这两种表格提交给同一个操作。其实不应该有什么太乱的事情。每个表单中都包含一个隐藏字段来表示正在提交哪个表单。
申请表登录:
/* other form elements */
$this->addElement('hidden', 'login', array(
'value' => 1
));
申请表注册:
/* other form elements */
$this->addElement('hidden', 'register', array(
'value' => 1
));
控制器:
$loginForm = new Application_Form_Login();
$registerForm = new Application_Form_Register();
if($this->_request->isPost()) {
if($this->_request->getPost('login')) {
if($loginForm->isValid($this->_request->getPost())) {
// validated, redirect
$this->_helper->redirector('profile', 'user');
}
}
if($this->_request->getPost('register')) {
if($registerForm->isValid($this->_request->getPost())) {
// validated, proceed as needed
}
}
}
$this->view->loginForm = $loginForm;
$this->view->registerForm = $registerForm;
View:
echo $this->loginForm;
echo $this->registerForm;
使用这种类型的设置,如果您的任何一个表单验证失败,isValid()
将保留已输入的所有数据,并且您仍然可以在成功验证一个或两个表单后进行重定向。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)