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

HTML/PHP Form Submission (what to do after)

这里是第一个问题,请耐心等待。

我正在为我的公司开发一个网站。我有一个 HTML 表单,它使用 php 文件通过电子邮件将用户输入的数据发送给我。但是用户被路由到一个丑陋的 .php 页面,其中包含一条简单的 "Thank you" 消息。

我的问题分为几个部分。

  1. "Successful Submission" 页面既漂亮又别致是标准,还是只停留在表单所在的页面上就可以了?
  2. 如果留下来没问题,如何在不离开页面的情况下执行php代码发送数据?
  3. 此外,如果我留在页面上,我如何在上面显示一条消息,说 "Thanks, your form was submitted"?

通常根据您的喜好。

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

value=<?php if isset($_SESSION['var_name']){echo $_SESSION['var_name'];}?>

但是,如果数据有效,我将在重定向到我的登录页面(通常是主页)之前执行某些操作(数据库插入、邮寄等...)。

关于正确回答您的 3 个问题:

  1. 我说的是优惠。它的范围可以从一个简单的弹出窗口到重定向,再到一个完整的页面。但是,通知您的用户提交状态是标准做法。他不会在您的页面上进行猜测。

  2. 如果您想留在您的表单页面上,请尝试通过 AJAX 将您的表单发送到您的验证脚本。漂亮又简单

  3. 参考#2。您在 AJAX 片段

  4. 中执行您的代码
  1. "Successful Submission" 页面既好看又漂亮是标准,还是只停留在表单所在的页面上就可以了?

答:出示就好了谢谢!!!如果该页面还有其他内容,则在同一页面上显示消息。

  1. 如果可以留下来,如何在不离开页面的情况下执行php代码发送数据?

回答:您可以使用AJAX向服务器发送异步请求并填写表单数据。

3.Further,如果我留在页面上,我如何在上面显示一条消息,说 "Thanks, your form was submitted"?

回答:一旦您从 AJAX 获得成功响应,您可以使用感谢消息更改 HTML 代码,如果您在提交表单时出现错误,您可以在同一页面上显示该错误没有刷新页面的页面。

考虑问题 1 有一个 "Successful Submission" 页面看起来漂亮又漂亮是标准的,还是只停留在表单所在的页面上就可以了?

不强制要求有一个单独的页面来显示对最终用户的响应。实际上,这取决于您开发页面所针对的场景。主要目的是为您网站的最终用户/访问者提供最佳 UI 体验。如果有一些重要的信息,内容比较多,那么提交表单后最好在另一个页面显示。如果它只是一条成功消息,那么在表单提交后留在同一页面并在那里显示响应消息就可以了。

现在进入问题 2 和 3

如果可以留下来,如何在不离开页面的情况下执行php代码发送数据?

此外,如果我停留在页面上,我如何在页面上显示一条消息,说 "Thanks, your form was submitted"?

您可以使用 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 代码插入 table)以保存数据和 return 响应。

例如:

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. 是的,您可以使用您要提交表单的同一页面。
  2. 您可以将操作设置为另一个 .php 页面作为示例 sendEmail.php

    动作="sendEmail.php"方法="post"

    你可以在那里获取表单提交值。发送电子邮件时,您可以设置这样的条件

    if(emailSent == true){ header('Location: http://www.example.com/index.php?success=true'); }

  3. 当 sendEmail.php 重定向到索引页面时,您可以使用 php 获得 url 值。并显示成功信息

    $paraVal = $_GET["success"]; 如果($paraVal == 真){ // 显示消息 }