zend-framework - Zend 框架 : Post to different action then return to original action if fails validation AND keep form fields

标签 zend-framework validation zend-form autofill

这可能听起来很奇怪,但我在一页上有两个表单。一个只是发回给自己。我在另一个 Action 中发布了第二篇文章,以保持代码简洁。也许不是正确的选择...

我现在遇到的问题是,如果第二个表单未验证,我将重定向回包含该表单的页面,但我不知道如何让我的表单字段填写用户的原始信息进入。有没有办法做到这一点并继续发布到两个单独的操作,或者我是否需要硬着头皮将两个表单发布回同一个操作并处理困惑的逻辑?

最佳答案

我会将两个表单提交到同一操作。其实不应该有什么太乱的事情。每个表单中都包含一个隐藏字段来表示正在提交哪个表单。

Application_Form_Login:

 /* other form elements */
 $this->addElement('hidden', 'login', array(
      'value' => 1
 ));

申请表注册:

 /* other form elements */
 $this->addElement('hidden', 'register', array(
      'value' => 1
 ));

Controller :

$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;

查看:

echo $this->loginForm;

echo $this->registerForm;

使用这种类型的设置,如果您的任何一个表单验证失败,isValid() 将保留已输入的所有数据,并且您仍然可以在成功验证一个或两个表单时进行重定向。表格。

关于zend-framework - Zend 框架 : Post to different action then return to original action if fails validation AND keep form fields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3876877/

相关文章:

email - Zend_Mail : moveMessage() exception

zend-framework - 如何对包含CSRF表单元素的Zend_Form进行单元测试?

php - 处理 Woocommerce 验证结帐表单中的多个子字符串

zend-form - Z_Form::向 Action Controller 中的 zend_form 添加自定义错误消息

php - INNODB Lock 有什么问题?

php - Zend 搜索序列号(字符串而不是整数)

python - 如何在模型表单验证中访问 id?

javascript - 如何获取 <input type ="number"> 字段的原始值?

css - 由 zend form 创建的样式定义列表(必须在 IE7+ 中工作)