HTML/PHP 表单提交(之后要做啥)[关闭]
Posted
技术标签:
【中文标题】HTML/PHP 表单提交(之后要做啥)[关闭]【英文标题】:HTML/PHP Form Submission (what to do after) [closed]HTML/PHP 表单提交(之后要做什么)[关闭] 【发布时间】:2018-05-22 05:37:11 【问题描述】:这里是第一个问题,所以请耐心等待。
我正在为我的公司开发一个网站。我有一个 html 表单,它使用 php 文件将用户输入的数据通过电子邮件发送给我。但是用户被路由到一个丑陋的 .php 页面,并带有一个简单的“谢谢”消息。
我的问题有几个部分。
-
“成功提交”页面看起来漂亮又漂亮是标准的,还是只停留在表单所在的页面上就可以了?
如果可以留下来,如何不离开页面执行php代码发送数据?
此外,如果我留在页面上,如何在页面上显示一条消息,例如“谢谢,您的表单已提交”?
【问题讨论】:
通知用户操作成功是一个标准,否则他们如何知道操作已通过?关于其他问题,您可以按照this 或互联网上出现的任何其他问题进行操作:“使用 ajax jquery php 提交表单而不刷新页面” 1) 你需要一些东西来通知用户,但它不需要是一个新页面。 2)谷歌。您可以将表单提交到现有页面。 3)谷歌。您可以将其写入并在提交时显示。 【参考方案1】:考虑问题 1 “成功提交”页面看起来漂亮又漂亮是标准的,还是只停留在表单所在的页面上就可以了?
不必有一个单独的页面来显示对最终用户的响应。实际上,这取决于您正在开发页面的场景。主要目的是为您网站的最终用户/访问者提供最佳 UI 体验。如果有一些重要的信息内容很大,那么最好在表单提交后在另一个页面中显示。如果它只是一条成功消息,那么在表单提交后留在同一页面并在那里显示响应消息是可以的。
现在进入问题 2 和 3
如果可以留下来,如何在不离开页面的情况下执行php代码发送数据?
此外,如果我停留在页面上,如何在页面上显示一条消息,例如“谢谢,您的表单已提交”?
您可以使用 ajax 来完成它。在 jquery 的帮助下,您可以使用
使其变得更简单$.ajax 函数
例如:
$("#formbutton").click(function()
$.ajax(
type: "POST", // method
url: "savecontact.php", // call to external php file
data: name:n,contact:c, // passing variables to php file
success: function(result)
// get the response after ajax call is successful
,
complete: function(result)
);
);
现在在 savecontact.php 中编写必要的代码(通常是插入表格的 php 代码)来保存数据并返回响应。
例如:
result = mysqli_query("INSERT INTO table (NAME ) VALUES ('val')"));
if($result)
echo "Success";
exit;
else
echo "Error";
exit;
ajax 调用执行后,在 ajax 调用的成功函数中,您将获得 Success 或 Error 的响应,基于此,您可以将消息显示到通常放置在表单上方的空 div 中。
success: function (response)
if(response == "Success")
$("#div").html("Thanks, your form was submitted");
else
$("#div").html("Issue with form submission.Please try again");
表单提交为 ajax 响应后,将显示相应的消息。
【讨论】:
【参考方案2】:-
“成功提交”页面看起来漂亮又漂亮是标准的,还是只停留在表单所在的页面上就可以了?
Answer: 如果你能表现出来就好了 谢谢!!!如果页面还有其他内容,则在同一页面上显示消息。
-
如果可以留下来,如何不离开页面执行php代码发送数据?
Answer: 你可以使用 AJAX 向服务器发送异步请求并填写表单数据。
3.此外,如果我停留在页面上,如何在页面上显示一条消息,例如“谢谢,您的表单已提交”?
回答:一旦您从 AJAX 获得成功响应,您可以使用感谢消息更改 HTML 代码,如果您在提交表单时遇到错误,您可以在同一页面上显示该错误而无需刷新页面。
【讨论】:
【参考方案3】:这通常取决于您的喜好。
对我来说,我通常在操作页面上包含我的验证脚本(临时重定向到空白页面)。我将我的帖子变量保存到我的会话中,以便稍后重新加载表单。如果出现错误,我将错误消息保存在会话变量中,然后重定向到我的表单页面。在我的表单中,我在每个输入元素中都包含这个片段
value=<?php if isset($_SESSION['var_name'])echo $_SESSION['var_name'];?>
如果数据有效,我将在重定向到我的登录页面(通常是主页)之前执行某些操作(数据库插入、邮件等)。
至于正确回答您的 3 个问题:
就像我说的,它是优惠的。它的范围可以从一个简单的弹出窗口到重定向,再到一个完整的页面。但是,通知您的用户提交的状态是标准的。他不会在你的页面上做猜测工作。
如果您想留在表单页面上,请尝试通过 AJAX 将表单发送到您的验证脚本。漂亮又简单
请参阅 #2。你在 AJAX sn-p 中执行你的代码
【讨论】:
【参考方案4】:-
是的,您可以使用要提交表单的同一页面。
您可以将操作设置到另一个 .php 页面,例如 sendEmail.php
action="sendEmail.php" method="post"
您可以在其中获取表单提交值。发送电子邮件时,您可以设置这样的条件
如果(电子邮件发送 == 真) header('位置:http://www.example.com/index.php?success=true');
当 sendEmail.php 重定向到索引页面时,您可以使用 php 获取 url 值。并显示成功信息
$paraVal = $_GET["成功"]; 如果($paraVal == 真) // 显示消息
【讨论】:
嗨!这对我来说最有意义。唯一的麻烦是,我收到此错误消息。 “警告:无法修改标头信息 - 标头已由 (...) 发送”。我尝试使用谷歌搜索,但它说在编辑标题之前我无法执行任何代码。我误解了你的指示吗? 嗨,谢谢。在标题开始之前添加它。 ob_start();和 ob_end_clean();您可以从此链接获取更多信息:benohead.com/php-modify-header-information-headers-already-sent以上是关于HTML/PHP 表单提交(之后要做啥)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
fastadmin: layer.open 弹出层如何在表单提交之后自动关闭?
给定 nil 参数时要做啥的 Objective-c 约定?
Firefox 处理 xxx.submit(),Safari 不处理……能做啥?