我有一个用于创建新“组”的表单。我现在添加了一个小的“返回”图像,用户应该能够返回一步。我不知道为什么,但是当我点击这个新图像时,用于我想要离开的表单的控制器和动作(/admin/creategroup)被再次用HTTP POST集进行调用。因此,表单验证已完成,并且我坚持显示验证错误的此表单。Zend:从未经过验证的表单重定向
这是我的表单中带有两个图像按钮的代码片段。我wan't的“返回” -image我重定向到指定控制器不用验证表单:
$this->addElement('image', 'btnBack', array (
'name' => 'btnBack',
'id' => 'btnBack',
'label' => '',
'title' => 'Go back',
'alt' => 'Go back',
'src' => '/img/undo.png',
'onClick' => "window.location='/admin/groupoverview'"
));
$this->addElement('image', 'btnSave', array (
'name' => 'btnSave',
'id' => 'btnSave',
'label' => '',
'title' => 'Save this new group',
'alt' => 'Save this new group',
'src' => '/img/save.png',
'onClick' => "document.forms[0].submit();"
));
编辑:
我已经想到的可能性在/管理/ creategroup检查无论是从'btnBack'图像还是'btnSave'图像调用,并且如果源是'btnBack'图像,都跳过表单验证并正确重定向。
我只是认为应该有一个更好的解决方案,直接从窗体重定向,并规避再次调用/admin/creategroup。
EDIT2:
我视图脚本:
public function creategroupAction()
{
$form = new Application_Form_CreateGroup();
$request = $this->getRequest();
if ($request->isPost()) {
if ($form->isValid($request->getPost())) {
// Data for new group is valid
...
} else {
// Form data was invalid
// => This is where I land when pressing the 'back' image
// No further code here
}
}
$this->view->form = $form;
}
没关系doneeeee – RockyFord 2013-04-08 04:21:26
@RockyFord:原谅我?你的评论似乎表明,人们只是看一眼这个问题,我的问题已经解决了,情况并非如此。我仍然在寻找这个解决方案。 – Daniel 2013-04-11 17:59:08
'btnback'应该可能只是重定向到一个url,这可以使用锚''完成,或者它可以作为控制器的重定向。我不是真的在JavaScript上,所以我不能评估你当前的方法,但你可以尝试使用url helper来代替js'<?php echo $ this-> url(array('controller'=>'admin' ,'action'=>'groupoverview'));' – RockyFord 2013-04-13 11:12:32