为什么没有onclick工作?

时间:2013-01-18 09:40:17

标签: php javascript onclick

  

可能重复:
  Headers already sent by PHP

if($sendmail) {
  echo "<div class=\"success\" class=\"regdet\">Congratulations $name! You have successfully registered for <span>AADAB 2013</span>! An email has been sent to your email with the details of your form.<br><br>If the page does not automatically redirect you in 5 seconds, click <input type=\"button\" value=\"Here\" onclick=\"window.close()\"> to continue.</div>";
  header (refresh: 5, url="form.php");
} else {
  echo "<span style=\"color: red; background: rgba(219,219,219,0.7);\">There was an error in submitting your form. Click <a href=\"form.php\">here</a> to try again!</span>";
}

我试图在5秒后将用户重定向到表单(这是当前表单,包含表单和PHP命令)...因为它没有发生,我试图包含一个按钮在表单确认页面上按下后将关闭窗口。

那也没有发生。

正在显示消息,表单正在将电子邮件发送到我的电子邮件帐户,但这一小部分让我烦恼不已!

4 个答案:

答案 0 :(得分:1)

您应该将参数作为字符串传递给header()(实际上您正在发送原始标题字符串)。

所以这样:

header('refresh:5;url=form.php');

至于window.close()。如果您没有使用Javascript打开窗口并尝试使用窗口处理程序关闭它,您实际上可能会遇到问题。由于安全原因,Javascript不会让您关闭用户看到的任何窗口。从理论上讲,您应该看到一个浏览器警报,告诉您JS想要关闭此窗口(但我没有设法让它在IE 9或FF上工作)。

答案 1 :(得分:0)

“只允许对使用window.open方法的脚本打开的窗口调用此方法。如果脚本没有打开窗口,则JavaScript控制台中会出现以下错误:脚本可能无法关闭没有被脚本打开的窗口。“

当您打开窗口时,应该将其分配给变量。

openedWindow = window.open('moreinfo.htm');

然后当你要关闭它时......

openedWindow.close();

如果您想用JS关闭窗口,那么您可能还需要使用JS重定向...

location.href = 'form.php';

答案 2 :(得分:0)

如果您尚未向浏览器输出任何内容,则只能输出标题。在您的情况下,echo某事,然后尝试发送header()

你也应引用你的论点:

// no output so far....
header ('refresh: 5; url=form.php');

如果查看错误日志,您应该找到:

  

PHP警告:无法修改标题信息 - 已经由...发送的标题

答案 3 :(得分:-1)

window.close()在许多现代浏览器中都不能自行运行。

有很多方法:Issue with window.close and chrome

或者您是否可以使用模态弹出窗口而不是新窗口?