【问题标题】:Zend remove anchor text in url redirectZend 删除 url 重定向中的锚文本
【发布时间】:2010-06-16 08:40:10
【问题描述】:

我有一个使用锚名称作为操作的表单,因此当提交表单时,它会直接返回到表单(例如“www.domain.com/page#contact-form”)。这个想法是,如果有任何错误,它会直接进入表单(靠近页面底部),这样您就可以看到错误并继续填写表单。如果表单有效,我希望它重定向到另一个页面(例如 www.domain.com/another-page)。问题是重定向 url 在 url 中仍然有锚文本(在上面的例子中是 www.domain.com/another-page#contact-form)。

我正在使用

$this->_helper->redirector->goToRouteAndExit(array(), 'another-page', true);

转到另一页路由。我已经尝试专门设置 url,但这也不能解决它。

如何重定向到另一个页面并从 url 中删除该锚文本?

【问题讨论】:

  • 我刚刚了解到这只会影响 Firefox 和 Opera。 IE 和 Safari(既然 Safari 会这样做,我假设 Chrome 也会这样做?)正确重定向。那么,关于如何在不使用 Javascript 的情况下摆脱 FF 和 Opera 中的锚文本的任何想法?

标签: zend-framework text redirect anchor


【解决方案1】:

我本以为你可以这样做:

if ($this->_request->isPost()) {
   if ($formObject->isValid($this->_request->getPost())) {
      // do something
      $this->_redirect('/my/new/url/');
   } else { // if error
      // do something else
      $this->_redirect('/my/original/url/#anchor);
   }
}

有什么用吗?

编辑:假设您正在使用 Zend_Form/Zend_Dojo_Form

【讨论】:

  • 我正在使用 Zend_Form。当我尝试进行重定向时,我会丢失表单数据。如果您曾经输入过表单并输入错误信息,大多数情况下它会再次显示表单和您的数据,而当我进行重定向时,它只会显示表单 - 当您刚刚花了 5 次时,这令人沮丧(ish)填写这个大表单的分钟=(不过,我已经做了一个解决方法。如果表单是有效的,那么它会隐藏表单并回显成功消息,因此用户有某种反馈来解释在哪里形式有形式。
  • 我之前从未尝试将锚点编码到表单操作中,但是在声明表单时,您可以尝试将其包含在内。我假设如果用户正在填写表单,那么他们将在页面的那个区域并且需要在出错时重定向回那里。如果您的控制器无效,最后删除我上面写的重定向语句。其他选项可能包括使用会话来存储表单数据,但我会尽量避免这种复杂性。
猜你喜欢
  • 1970-01-01
  • 2019-03-05
  • 2012-04-16
  • 2015-03-09
  • 1970-01-01
  • 1970-01-01
  • 2019-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多