【发布时间】:2014-09-11 09:28:33
【问题描述】:
我有一个带有输入和提交按钮的花式框。在提交时我生成一个 url,然后我想关闭 fancybox 并重定向到生成的 url。
重定向有效,但在 Fancybox 中打开。我尝试了
中的建议how-to-redirect-zend-login-form-in-a-fancbox-iframe-with-php-without-any-js-on,
fancybox-close-from-within-iframe-and-take-parent-page-to-the-link
和类似的。
close-fancybox-2-window-and-redirect-parent-window 中提到的选项自 1 以来不合适/不受欢迎。我正在为整个应用程序使用在单独文件中定义的 fancybox,并在 fancybox 维度中添加 afterClose 回调将对所有其他 fancyboxes 产生影响(我不想单独标注每个fancybox的尺寸),以及2.我希望能够在取消时关闭fancybox而不需要重定向。
所需的解决方案是关闭fancybox 并从控制器重定向。 问题是我的 url 是动态的并且是在提交时生成的,这意味着我无法在打开 fancybox 时设置 url。但由于重定向正在工作,我想关闭fancybox 应该不会太难。
我有什么:
Choose.phtml 在 index.php 中的 chooseAction 中打开。 在幻想框中,我选择选项 A 或 B 并提交。提交时调用 createOption 操作,将 Option 插入数据库并返回 id(例如“123”)。此 id 成为 url http://www.example.com/option/edit/id/123 的一部分。
然后,相关的部分来了,在我的控制器中,我现在有了:
echo '<script type="text/javascript">window.location.href = '.
$this->_helper->redirector->gotoRoute( array("module" => "option", "controller" =>
"create", "action" => "edit", "id" => $newOptionId ) ,"newOption", TRUE).';
parent.jQuery.fancybox.close(); </script>';
url 部分看起来不错,因为它确实重定向到所需的视图。唯一的问题是它显示在 fancybox 中,所以 fancybox.close 部分仍然是问题。
【问题讨论】:
标签: php redirect iframe fancybox