【问题标题】:HTML/PHP Form Submission (what to do after) [closed]HTML/PHP 表单提交(之后要做什么)[关闭]
【发布时间】:2018-05-22 05:37:11
【问题描述】:

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

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

我的问题有几个部分。

  1. “成功提交”页面看起来漂亮又漂亮是标准的,还是只停留在表单所在的页面上就可以了?
  2. 如果可以留下来,如何不离开页面执行php代码发送数据?
  3. 此外,如果我留在页面上,如何在页面上显示一条消息,例如“谢谢,您的表单已提交”?

【问题讨论】:

  • 通知用户操作成功是一个标准,否则他们如何知道操作已通过?关于其他问题,您可以按照this 或互联网上出现的任何其他问题进行操作:“使用 ajax jquery php 提交表单而不刷新页面”
  • 1) 你需要一些东西来通知用户,但它不需要是一个新页面。 2)谷歌。您可以将表单提交到现有页面。 3)谷歌。您可以将其写入并在提交时显示。

标签: php html forms submit submission


【解决方案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】:
    1. “成功提交”页面看起来漂亮又漂亮是标准的,还是只停留在表单所在的页面上就可以了?

    Answer: 如果你能表现出来就好了 谢谢!!!如果页面还有其他内容,则在同一页面上显示消息。

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

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

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

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

    【讨论】:

      【解决方案3】:

      这通常取决于您的喜好。

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

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

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

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

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

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

      3. 请参阅 #2。你在 AJAX sn-p 中执行你的代码

      【讨论】:

        【解决方案4】:
        1. 是的,您可以使用要提交表单的同一页面。
        2. 您可以将操作设置到另一个 .php 页面,例如 sendEmail.php

          action="sendEmail.php" method="post"

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

          如果(电子邮件发送 == 真){ header('位置:http://www.example.com/index.php?success=true'); }

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

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

        【讨论】:

        • 嗨!这对我来说最有意义。唯一的麻烦是,我收到此错误消息。 “警告:无法修改标头信息 - 标头已由 (...) 发送”。我尝试使用谷歌搜索,但它说在编辑标题之前我无法执行任何代码。我误解了你的指示吗?
        • 嗨,谢谢。在标题开始之前添加它。 ob_start();和 ob_end_clean();您可以从此链接获取更多信息:benohead.com/php-modify-header-information-headers-already-sent
        猜你喜欢
        • 2013-09-07
        • 2020-04-22
        • 2011-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多