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

为什么这个表单在按两次按钮时没有提交两次?

訾雅畅
2023-03-14

不过,我可以在01:00的视频中复制问题。这意味着当我安装带有身份验证的Laravel时,如果我在登录表单中单击提交按钮两次,Firefox将发送2个请求。

为什么在多次单击按钮时,Firefox有时发送多个post请求,而有时只发送一个?

我有一个用户表

id | name
 1 | John

如果我在Add按钮上单击两次(或二十次)提交表单,那么数据库中只有一个新行。

为什么会这样?我希望,如果我多次单击submit按钮,那么表单将发送多个请求,并插入多行。

这是我的表格:

<form action="/test.php" method="POST">
  <input type="submit" value="Add">
</form>
<?php
$servername = "localhost";
$username = "adam";
$password = "password";
$dbname = "test-db";

$conn = new mysqli($servername, $username, $password, $dbname);       
$sql = "INSERT INTO user (name) VALUES ('John')";
if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
}     
$conn->close();

sleep(4);

2001:****:****:4400:****:****:****:****-[25/jul/2018:11:30:34+0200]“post/test/test.php http/1.1”20031“http://*********.net/test/form.php”Mozilla/5.0(X11;Ubuntu;Linux x86_64;RV:57.0)Gecko/20100101 Firefox/57.0“****************************/57.0”

备注:

我读过关于防止在后端或前端多个提交的技术。因此,我认为应该可以通过多次按下按钮来多次提交表单。

我还在wiki文章post/redirect/get中读到,如果用户过快地多次加载表单,这种模式无法防止:

如果web用户在初始提交完成之前由于服务器滞后而刷新,则会在某些用户代理中导致重复的POST请求。

同样,在这个视频中,在1点,有人双击一个按钮,并得到一个错误,因为他提交了两次。

共有1个答案

盛骏祥
2023-03-14

注意:我不是专家,所以我可能错了。这只是我的看法。

对我来说,这似乎是浏览器的怪癖。Firefox似乎有意忽略了所有额外的请求

 类似资料:
  • 我在一个网站上有两个类似的表单,我想合并成一个有两个提交按钮的表单。他们使用大多数相同的数据。 第一个表单使用GET将数据发送到另一台服务器。第二个表单通过电子邮件发送。我想强烈鼓励网站用户在尝试选项二之前先使用选项一。 我知道如何使用javascript实现这一点,但不是以一种退化良好的方式。还有其他方法可以有两个提交选项吗?或者其他如何实现这一点的想法?谢谢

  • 我有自己的观点; 我有自己的路线。php代码; 如果用户单击一个按钮,我希望他们调用ExcelController。如果是另一个,我要叫MapController。。。两个不同的控制器! 我的路线应该是什么?目前,当我单击其中一个时,它只会停留在当前页面上。

  • 我使用的是Laravel5.1,我想制作一个带有两个提交按钮的表单-保存和保存草稿。 但是当我发布表单时,除了提交值之外,我拥有所有字段。 我读到Laravel不会把提交按钮值在POST当表单通过ajax发送,所以你能帮我怎么做吗? 我已经尝试了下面的一些代码: 在我的路线上。我有: 提前感谢

  • 问题内容: 我有一个看起来像这样的表格: 当我绑定到表单的Submit()时,似乎无法访问用户单击的图像。因此,我试图绑定到单击图像本身(),该图像总是提交表单,无论我是否尝试 返回false; event.stopPropogation(); 要么 event.preventDefault(); 因为所有这些都是表单事件。 我应该将$ .post()附加到form.submit()事件上吗,如果

  • 我花了几个小时试图找到解决我问题的办法,但似乎找不到合适的办法。提前感谢您的协助! 我有一个html表单: 我想要两个提交按钮: 我想第一个提交按钮有formindb_hoh_1.php点击时的动作和第二个提交按钮有formindb_hoh_2.php的动作但我不确定如何使一个按钮有一个动作和有另一个按钮有不同的动作。

  • 问题内容: 目前,我有一个HTML表单,用户可以在其中输入文章的标题和文本。当需要提交时,将显示两个按钮。一种是“保存”他们的文章而不发布它,另一种是“发布”该文章并将其公开。 我正在使用PHP,并且试图找出如何分辨使用了哪个按钮,以便在数据库中存储相应的相应值。 可能应该早些时候提到过,但是我无法分配按钮值,因为按钮是图像,所以文本会显示在其上方。 问题答案: 给每一个属性。仅单击的属性将被发送