当前位置: 首页 > 知识库问答 >
问题:

PHP-无需重新加载页面即可提交表单

濮丁雷
2023-03-14

提交表单时如何防止页面刷新?我希望能够单击“提交”,但不刷新页面,只需在按钮下返回一条消息,说“感谢您接受调查!我们一定会联系您的。”

我读了一些文章和问题说,最好的方法是通过AJAX实现它?我希望是否有其他方法可以做到这一点,但如果AJAX是唯一的方法,那么是否有一种代码可以让人容易理解它的功能。

非常感谢大家!

共有2个答案

傅元章
2023-03-14

您可以使用这个简单的代码

步骤1:创建表单

步骤2:在查询中处理表单提交

步骤3:e.preventDefault();这将有助于防止重新加载

步骤4:您可以更改测试。php与您的实际url

 <html>
 <head>
    <title>Test Form</title>
    <head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
 </head>
 <body>
     <form action="#" id="login_form" method="post">
         <input type="email" class="form-control" name="email_id" id="email_id" value="admin@admin.com" placeholder="Email">
          <button type="submit" class="btn btn-primary btn-block">Sign In</button>
 </form>
 </body>
 </html>
 


 <script type="text/javascript">
    
    $( "#login_form" ).on( "submit", function(e) {
 
    var dataString = $(this).serialize();
     
    // alert(dataString); return false;
 
    $.ajax({
      type: "POST",
      url: "test.php",
      data: dataString,
      success: function (data) {
       alert("Submit");
        
      }
    });
 
    e.preventDefault();
  })
 </script>
储毅
2023-03-14

PHP是一种位于服务器端的语言。发送表单发生在浏览器中,因此是客户端。浏览器负责处理这种行为。默认情况下,html通过post或get发送请求到在"action"表单中定义的endpoint。

如果你想动态发送一个表单而不需要硬重载,在PHP中是没有办法的,因为你需要与浏览器交谈。

实现这一点的快速方法是在前端使用类似jQuery的库。

我建议将该操作留给重定向工作,以便为没有JS的浏览器提供后备。

来自虚拟形式:

<form id="target" action="destination.html">
  <input type="text" name="hello" value="Hello there">
  <input type="text" name="user" value="Username">
  <input type="submit" value="Go">
</form>

您可以轻松地防止javascript/jquery的默认行为:

$( "#target" ).submit(function( event ) {
  event.preventDefault();

});

这将阻止表单发送和重定向。您现在可以使用Javascript发送数据并根据响应更新dom:

$( "#target" ).submit(function( event ) {
  event.preventDefault();
/*
   make your data requests, formats and more here.

   then send the data in the "data" part
*/

$.ajax({
  type: "POST",
  url: url,
  data: {"name": hello, },
  success: mycallback,
  dataType: dataType
});
});

“success”指向别处定义的回调函数。您可以在以下位置找到该函数的所有属性:https://api.jquery.com/jquery.post/

 类似资料:
  • 问题内容: 我有一个分类广告网站,在显示广告的页面上,我正在创建“向朋友发送提示”表单… 因此,任何想要的人都可以将广告提示发送给某些朋友的电子邮件地址。 我猜该表格必须提交到php页面,对吗? 提交表单时,页面被重新加载…我不想要… 有什么办法可以使其不重新加载并仍然发送邮件?最好没有ajax或jquery … 谢谢 问题答案: 您需要提交ajax请求来发送电子邮件,而无需重新加载页面。 您的代

  • 问题内容: 我有一个分类广告网站,在显示广告的页面上,我正在创建“向朋友发送提示”表单… 因此,任何想要的人都可以将广告提示发送给某些朋友的电子邮件地址。 我猜该表格必须提交到php页面,对吗? 提交表单时,页面被重新加载…我不想要… 有什么办法可以使其不重新加载并仍然发送邮件?最好没有ajax或jquery … 谢谢 问题答案: 您需要提交ajax请求来发送电子邮件,而无需重新加载页面。 您的代

  • 问题内容: 我对jQuery不太熟悉。我正在尝试制作一个无需重新加载页面即可在后台提交的表单。 我有一个隐藏的div,它显示并隐藏单击,在div内有一个表单。 我有两个问题: 1)表单验证失败时,仍将提交表单。我试图设置验证和提交代码的状态,但无法正常工作。 2)提交表单后,div自动隐藏,因此看不到成功的消息。 这是代码: 问题答案: 不应绑定到click事件(),而应绑定到 表单的事件。 我也

  • 问题内容: 我正在辩论应该如何学习。主要是,如果我从数据库中获取大量信息以将其加载到页面上,那么最好的方式是操纵页面而不需要重新加载。使用XML之类的东西是最好的选择,还是我应该使用的其他东西。我知道其中很多使用HTML Dom和XML Dom,但是我不想开始学习我不需要的东西。 问题答案: 您正在寻找的技术名称是AJAX,它代表异步Javascript和XML(尽管目前大多数AJAX使用JSON

  • 问题内容: 谁能告诉我为什么这部分代码不起作用? 当我推送提交时,什么也没有发生。在接收的php文件中,我正在使用$ _POST [‘time’]和$ _POST [‘date’]将数据放入mysql查询中,但它没有获取数据。有什么建议么?我假设这与“提交”按钮有关,但我无法弄清楚 问题答案: 表单是在ajax请求之后提交的。

  • 我在一页上有许多表格。我想提交每一张表格而不需要重新加载页面。我尝试了很多方法,但都做不到。我有一张类似的表格。我也尝试过使用ajax,但做不到。请帮帮我。现在,我也无法在数据库中插入。 滑动分页