我正在为我的网站建立联系表单,我希望用户输入他们的信息,点击提交,使用php进行信息处理,并在表单底部显示一条消息。最初,我正在重定向到另一个页面并且表单工作正常,但现在我只想附加一条小消息而无法使其工作。
这是我目前在contactengine.php文件中处理所有变量并发送电子邮件的内容。
if ($success){
THIS IS WHAT I DID BEFORE THAT WORKED BUT HAS TO REDIRECT
// print "<meta http-equiv=\"refresh\" content=\"0;URL=index_thanks.html\">"; //
//BELOW IS WHAT I WANT TO OCCUR
<script type="text/javascript">
$("#contact-area").append("Thanks for your message!")
</script>
}
答案 0 :(得分:2)
你不需要JavaScript。 JavaScript很棒,但只应在必要时使用,因为它会给用户体验带来一些脆弱性。
这是一种可能的设计方法:
处理表单,设置会话变量以感谢用户,并再次重定向到表单。这会将浏览器从POST切换到GET模式†,通常就像这样简单:
header('Location: http://yourdomain.com/form.php');
exit();
照常渲染表单。如果将会话变量设置为感谢用户,则呈现感谢消息,并取消设置会话变量‡
我不会在这里使用<meta />
刷新 - 它需要加载更多数据才能工作,并且更加繁琐地实现。
† POST重定向方法是Web开发中的常见设计模式。如果你不熟悉它,网上有很多这方面的资源。它修复了与在POST方法中呈现Web内容相关的问题,特别是与页面刷新和使用后退/前进按钮相关的问题。
‡这些临时会话变量有时称为 flash变量。它们从一个HTTP操作存在到下一个HTTP操作,并在第二个操作结束时被擦除。
答案 1 :(得分:1)
您不能将JavaScript放在PHP代码中。但是,我会解释你需要做什么。
在客户端上,为点击绑定一个事件,然后
$('form button').click(function() {
$.post('file.php', {'object': 'property'}, function(success) {
if(success) {
$("#contact-area").append("Thanks for your message!")
}
});
});
在服务器端,您将处理此问题:
//file.php
$sentByAJAX = $_POST['object'];
return true;