Используя только PHP (т.е. без JS), как перенаправить форму Zend из fancybox iframe на родительскую страницу, только если форма была успешной? Например, я устанавливаю setAttrib ("target", "_ parent") в форме Zend, но это заставляет действие submit перенаправлять на iframe, а не на родительскую страницу. Я хочу, чтобы он возвращался на родительскую страницу только в случае неудачной отправки. Если вход в систему не был успешным, он остается на fancybox, если iframe успешно отображает сообщение об ошибке. Я использую Zend Framework.
Вот некоторый код:
login.php
class Application_Form_Login extends Zend_Form
{
public function init()
{
$this->setAction('/auth/login')
->setAttrib('id', 'login_form')
->setAttrib('target', '_parent')
->setName('login_form')
->setMethod('post');
----->added all elements here
}
}
loginAction (внутри authController.php)
public function loginAction()
{
$request = $this->getRequest();
$form = new Application_Form_Login();
//$form->setAttrib('target','_parent');
//$this->view->login_form = $form;
if($request->isPost()){
if($form->isValid($request->getPost())){
$data = $form->getValues();
if ($this->_processLogin($data)) {
// We're authenticated! Redirect to the home page
$auth = Zend_Auth::getInstance();
$id = $auth->getIdentity()->id;
//this is where I need some logic to redirect on parent page only if successful login
$this->_redirect('/user/'.$id.'/home');
} else {
$form->setAttrib('target','_self');
$this->view->errorMessage = "Invalid credentials. Try again";
$form = new Application_Form_Login();
$this->view->login_form = $form;
}
}else{
$form->setAttrib('target','_self');
$this->view->errorMessage = "Can't be empty. Please try again.";
$form = new Application_Form_Login();
$this->view->login_form = $form;
}
}else{
}
$this->view->login_form = $form;
}