如何附加表格"感谢您的电子邮件!"按下提交按钮后?

时间:2014-08-15 19:52:20

标签: javascript php jquery html forms

我正在为我的网站建立联系表单,我希望用户输入他们的信息,点击提交,使用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>

}

2 个答案:

答案 0 :(得分:2)

你不需要JavaScript。 JavaScript很棒,但只应在必要时使用,因为它会给用户体验带来一些脆弱性。

这是一种可能的设计方法:

  • 设置POST表单
  • 处理表单,设置会话变量以感谢用户,并再次重定向到表单。这会将浏览器从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;