【发布时间】:2010-07-05 14:58:56
【问题描述】:
我有一个垂直滚动的网站(很多页内链接)。我还有一个正在处理的联系表单脚本。
我正在尝试进行设置,因此当有人完成/提交联系表单时,它将他们重定向到#contact_area(在同一页面上),但在调用标头函数之后会引发“无法修改标头信息”错误.
关于如何从内部处理脚本后重定向的任何建议?
谢谢!
【问题讨论】:
我有一个垂直滚动的网站(很多页内链接)。我还有一个正在处理的联系表单脚本。
我正在尝试进行设置,因此当有人完成/提交联系表单时,它将他们重定向到#contact_area(在同一页面上),但在调用标头函数之后会引发“无法修改标头信息”错误.
关于如何从内部处理脚本后重定向的任何建议?
谢谢!
【问题讨论】:
在 PHP 打印任何输出之前需要进行标头重定向。如果您想将用户引导到当前页面上的锚点,您有两种选择:
正常提交表单。您的 PHP 脚本会处理数据并在任何输出之前执行此操作:header("Location: /my_same_page#contact_area"); 该页面将被重新加载,但它们最终会出现在正确的位置。
通过 AJAX 提交表单数据,然后滚动到 #contact_area 锚点。
第二个选项可能是最简洁的,但第一个应该更容易实现。
【讨论】:
你可以使用输出缓冲来解决这个问题,几个例子here
【讨论】:
我假设您将表单发回原处对吗? 也许将联系表单提交到另一个页面,例如contactus.php,一旦成功将您的标题位置代码放入该页面,或者您可以使用在后台运行的jquery表单插件(我使用过的提交()函数)然后你也许 jquery scrollTo() 你的标签。
选择选项 1,如果您有时间,可以使用 jquery 版本。
【讨论】: