HTML/PHP表单提交(提交后做什么)

HTML/PHP表单提交(提交后做什么),php,html,forms,submit,submission,Php,Html,Forms,Submit,Submission,第一个问题,请耐心等待 我正在为我的公司开发一个网站。我有一个HTML表单,它使用php文件通过电子邮件将用户输入的数据发送给我。但是用户会被发送到一个丑陋的.php页面,页面上会显示一条简单的“谢谢”消息 我的问题有几个部分 有一个“成功提交”的页面看起来很漂亮,很别致,这是标准吗?还是只停留在表单所在的页面上就可以了 如果可以留下来,我如何执行php代码来发送数据而不离开页面 此外,如果我停留在页面上,我如何在页面上显示类似“谢谢,您的表单已提交”的消息 它通常是基于你的喜好 对我来说,我通

第一个问题,请耐心等待

我正在为我的公司开发一个网站。我有一个HTML表单,它使用php文件通过电子邮件将用户输入的数据发送给我。但是用户会被发送到一个丑陋的.php页面,页面上会显示一条简单的“谢谢”消息

我的问题有几个部分

  • 有一个“成功提交”的页面看起来很漂亮,很别致,这是标准吗?还是只停留在表单所在的页面上就可以了
  • 如果可以留下来,我如何执行php代码来发送数据而不离开页面
  • 此外,如果我停留在页面上,我如何在页面上显示类似“谢谢,您的表单已提交”的消息

  • 它通常是基于你的喜好

    对我来说,我通常在操作页面上包含我的验证脚本(临时重定向到空白页面)。我将post变量保存到会话中,以便稍后重新加载表单。如果有错误,我将错误消息保存在会话变量中,然后重定向到我的表单页面。在我的表单中,我在每个输入元素中包含这个片段

    value=<?php if isset($_SESSION['var_name']){echo $_SESSION['var_name'];}?>
    
    值=
    
    但是,如果数据有效,我将在重定向到我的登录页(通常是主页)之前执行某些操作(数据库插入、邮寄等)

    为了正确回答你的3个问题:

  • 就像我说的,这是优惠。它可以从一个简单的弹出窗口重定向到一个完整的页面。但是,标准做法是通知用户提交的状态。他不会在你的页面上做猜测工作

  • 如果您想停留在表单页面上,请尝试通过AJAX将表单发送到验证脚本。又好又简单

  • 请参阅#2。您可以在AJAX代码段中执行代码

  • 有一个“成功提交”的页面看起来很漂亮,很别致,这是标准吗?还是只停留在表单所在的页面上就可以了
  • 回答:如果你表示感谢就好了!!!如果页面也有其他内容,则在同一页面上显示消息

  • 如果可以留下来,我如何执行php代码来发送数据而不离开页面
  • 答:您可以使用AJAX向服务器发送异步请求,并在表单中填充数据

    3.此外,如果我停留在页面上,如何在页面上显示类似“谢谢,您的表单已提交”的消息

    答:一旦您从AJAX获得成功响应,您可以使用感谢信息更改HTML代码,如果您在提交表单时遇到错误,您可以在同一页面上显示该错误,而无需刷新页面。

    考虑问题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代码)来保存数据并返回响应

    例:

    在ajax调用执行之后,在ajax调用的success函数中,您将获得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响应后显示

  • 是的,您可以使用要提交表单的同一页面
  • 您可以将操作设置为另一个.php页面,例如sendmail.php

    action=“sendmail.php”method=“post”

    您可以在其中获得表单提交值。当发送电子邮件时,您可以这样设置条件

    如果(emailSent==true){ 标题('位置:'); }

  • 当sendmail.php重定向到索引页面时,您可以使用php获取url值。并显示成功消息

    $paraVal=$_GET[“success”]; 如果($paraVal==true){ //显示消息 }


  • 这是一个标准,告诉你的用户一个行动是成功的,否则他们怎么知道它通过了?关于其他问题,您可以按照指南进行操作,例如,当您在google上搜索时,会出现以下内容:“使用ajax jquery php提交表单而不刷新页面”1)您需要通知用户,但不需要是新页面。2) 谷歌。您可以将表单提交到现有页面。3) 谷歌。你可以把它写进去,并在提交时显示出来。嗨!这对我来说是最有意义的。唯一的问题是,我收到了这个错误消息。“警告:无法修改标题信息-标题已由(…)发送。”。我试着用谷歌搜索,但它说在编辑标题之前我不能执行任何代码。我误解你的指示了吗?嗨,谢谢。在页眉开始之前添加此项。ob_start();和ob_end_clean();您可以通过此链接获得更多信息:
    success: function (response) {
    
           if(response == "Success"){
               $("#div").html("Thanks, your form was submitted");          
           }
           else{
                $("#div").html("Issue with form submission.Please try again");
           }
    }