这里的第一个问题,请耐心等待我。
我正在为我的公司开发一个网站。我有一个HTML表单,它使用php文件通过电子邮件发送给用户输入的数据。但是用户被简单的“谢谢”消息路由到一个丑陋的.php页面。
我的问题有几个部分。
答案 0 :(得分: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调用的内部成功函数将获得成功或错误的响应,并且基于此,您可以将消息显示为通常位于表单上方的空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响应后,将显示相应的消息。
答案 1 :(得分:0)
通常基于您的偏好。
对我来说,我通常会在操作页面上包含我的验证脚本(暂时重定向到空白页面)。我将我的帖子变量保存到我的会话中,以便稍后重新加载表单。如果有错误,我将错误消息保存在会话变量中,然后重定向到我的表单页面。在我的表单中,我在每个输入元素中包含此片段
value=<?php if isset($_SESSION['var_name']){echo $_SESSION['var_name'];}?>
如果数据有效,我会在重定向到我的目标网页(通常是主页)之前执行某些内容(数据库插入,邮件等等)。
正确回答你的3个问题:
就像我说的那样,它是优惠的。它可以是从简单的弹出窗口到重定向,也可以是完整的页面。但是,向用户通知提交的状态是标准的。他不会在你的页面上做猜测。
如果您想留在表单页面上,请尝试通过AJAX将表单发送到验证脚本。好又简单
请参阅#2。您可以在AJAX代码段
答案 2 :(得分:0)
答案:如果你表现出来,那就太好了谢谢!如果页面还有其他内容,则在同一页面上显示消息。
答案:您可以使用AJAX向服务器发送异步请求,并填写表格中的数据。
3.此外,如果我留在页面上,我如何在其上显示一条消息,说明&#34;谢谢,您的表单已提交&#34;?
答案:一旦您从AJAX获得成功响应,您可以使用感谢信息更改HTML代码,如果在提交表单时出现错误,您可以在同一页面上显示该错误而无需刷新页面。
答案 3 :(得分:0)
您可以将操作设置为另一个.php页面,例如sendEmail.php
行动=&#34; sendEmail.php&#34;方法=&#34;后&#34;
您可以在那里获得表单提交值。当发送的电子邮件你可以把这样的条件
if(emailSent == true){ 标题(&#39;位置:http://www.example.com/index.php?success=true&#39;); }
当sendEmail.php重定向到索引页面时,您可以使用php获取url值。并显示成功消息
$ paraVal = $ _GET [&#34;成功&#34;]; if($ paraVal == true){ //显示消息 }