【问题标题】:How to append to form "Thanks for the email!" after submit button is pressed?如何附加到表格“感谢您的电子邮件!”按下提交按钮后?
【发布时间】:2014-08-15 19:52:20
【问题描述】:

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

}

【问题讨论】:

  • 你需要了解客户端和服务器端的区别以及HTTP生命周期。
  • 好的。但是我在这里具体做错了什么? PHP是服务器端语言,JS是客户端,对吗?所以我不能混合我假设的两者?
  • 提示:echo "&lt;script type=\"text/javascript\"&gt;";
  • 啊,您使用的是 AJAX 操作吗?我已经回答了如何使用传统的服务器往返处理表单提交。如果您是,请使用ajax 重新标记您的问题,因为它是相关的。
  • ^ 你最近怎么样?

标签: javascript php jquery html forms


【解决方案1】:

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

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

  • 设置 POST 表单
  • 处理表单,设置会话变量以感谢用户,然后再次重定向到表单。这会将浏览器从 POST 模式切换到 GET 模式,通常就像这样简单:

    header('Location: http://yourdomain.com/form.php');
    exit();
    
  • 像往常一样渲染表单。如果会话变量设置为感谢用户,则呈现感谢消息,并取消设置会话变量

我不会在这里使用 &lt;meta /&gt; 刷新 - 它需要加载更多数据才能工作,而且实施起来更加繁琐。


POST 重定向方法是 Web 开发中常见的设计模式。如果您不熟悉它,网上有很多关于此的资源。它修复了与在 POST 方法中呈现 Web 内容相关的问题,尤其是与页面刷新和使用后退/前进按钮有关的问题。

这些临时会话变量有时称为闪存变量。它们从一个 HTTP 操作到下一个操作都存在,并在第二个操作结束时被删除。

【讨论】:

  • 我需要更多关于如何做到这一点的详细信息,但我喜欢你的方法。
【解决方案2】:

您不能将 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;

【讨论】:

  • 服务器端代码应该放在哪里?在我正在使用的同一个 php 文件中?联系引擎.php?只需复制并粘贴您写的内容?
  • 差不多!你可以去 /server/file.php 让它远离你的前端代码:)
  • 对象和属性只是标准语法吗?还是我需要填写?
猜你喜欢
  • 2013-08-06
  • 2021-08-06
  • 1970-01-01
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-01
相关资源
最近更新 更多