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 弹出层如何在表单提交之后自动关闭?

PHP做了缓存之后不能提交表单

给定 nil 参数时要做啥的 Objective-c 约定?

Firefox 处理 xxx.submit(),Safari 不处理……能做啥?

javascprit form表单提交前验证以及ajax返回json

不允许使用 Orm 工具:你在做啥? [关闭]