在 PHP 中调用 javaScript 警报后,重新加载页面将不起作用
Reloading a page won't work after calling a javaScript alert in PHP
我的网站中有一个contact-us
页面。当用户提交表单时,它将转到mailIt.php
并执行必要的操作来发送该邮件。发送后,它将刷新代码。
由于我想添加通知来通知用户邮件已发送,因此我更改了代码以在页面中显示javaScript警报。但是在该警报之后将显示并且页面加载将停止,它将保留在mailIt.php
页面中(带有inout
文本)。
@mail($email_to, $email_subject, $email_message, $headers);
?>
<script type="text/javascript">
alert("Thank you for contacting us!");
</script>
<?php
echo("in");
header('Location: /contact_us.html');
echo("out");
我添加的唯一部分是,
?>
<script type="text/javascript">
alert("Thank you for contacting us. We will be in touch with you very soon !");
</script>
<?php
为什么会这样?我怎样才能防止这种情况发生?
请记住,在发送任何实际输出之前必须调用 header() http://php.net/manual/en/function.header.php
您将在调用 header()
函数之前发送 javascript 弹出窗口。
一个解决方案是打印javascript弹出窗口,然后加载./contact_us.html的内容并将其打印到您的页面,如下所示:
echo '<script type="text/javascript">
alert("Thank you for contacting us!");
</script>';
$html = file_get_contents('./contact_us.html');
echo $html;
如果你想确保邮件已经发送,你应该把mail()
函数放在一个if()
语句中。 mail()
返回一个布尔值:如果成功,则为 true,如果失败则为 false。
if(mail($email_to, $email_subject, $email_message, $headers)){
echo '<script type="text/javascript">
alert("Thank you for contacting us!");
</script>';
$html = file_get_contents('./contact_us.html');
echo $html;
}
else{
echo 'Oops, something went wrong!';
}
相关文章:
- 弹出加载不起作用
- GULP中的Ctrl+S之后,实时重新加载不起作用
- 影子盒加载不起作用
- 余烬 CLI 实时重新加载不起作用
- 在Javascript中保存和加载不起作用
- 路由到新页面时加载不起作用
- IE11 脚本加载不起作用(有时)
- 砌体图像加载不起作用
- Jquery 移动加载不起作用
- 在javascript/jquery中加载不起作用
- jquery瀑布插件's等待图像加载不起作用
- 简单的Jquery/Ajax加载不起作用
- 代码点火器&AJAX-Div重新加载不起作用
- HTML加载不起作用
- 有什么原因吗('img')加载不起作用(jQuery)
- 弹出加载不起作用
- 图像加载不起作用,错误Uncaught TypeError:类型错误
- 窗口加载不起作用
- 加载不起作用,但鼠标悬停正常工作
- 在wordpress中,ajax加载不起作用