我在 http://www.notonebit.com/projects/mailing-list/ 找到了一个简单的邮件列表表格
问题是当我点击提交时,我想要它做的只是在当前表单下显示一条消息,说“感谢订阅”,没有任何重定向。相反,它将我定向到一个全新的页面。
<form method="POST" action="mlml/process.php">
<input type="text" name="address" id="email" maxlength="30" size="23">
<input type="submit" value="" id="submit"name="submit" >
</form>
最佳答案
您需要使用 AJAX 将数据发布到您的服务器。最好的解决方案是实现定期发布,这样至少会奏效。然后,您可以使用 Javascript 连接到它。这样,当有人没有 Javascript 时,发布将起作用(刷新)。
如果找到a good article on posting forms with AJAX using JQuery .
此外,您可以选择将数据发布到同一网址。 JQuery 库将添加 HTTP_X_REQUESTED_WITH
header ,您可以在服务器端脚本中检查其值。这将允许您发布到相同的 url 但返回不同的值(整个页面,或只是一个特定的响应,取决于是否是 AJAX 请求)。
所以你实际上可以从你的表单中获取 url 而不需要在你的 Javascript 中编写它。这使您可以编写更易于维护的脚本,甚至可能会产生一种通用的表单处理方法,您可以将其重复用于要使用 Ajax 发布的所有表单。
关于php - 不使用 PHP 重定向的 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6806028/