Ajax确认仅询问一个数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax确认仅询问一个数据相关的知识,希望对你有一定的参考价值。

我已经实现了一个ajax beforeSend函数,其中有一个confirm(),问题是在代码中如果我想删除第一个值而它要求确认但如果我点击第二个或第三个或第四个,它就是到方法中的URL并执行命令

这是页面

<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Button</th>
</tr>
</thead>
<tbody>
<?php 
$stmt = $DB_con->prepare("SELECT * FROM people");
$stmt->execute();
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
?>
<tr><td><?php echo $row['id']; ?></td>
<td><?php echo $row['name']; ?></td>
<form method="post" id="del" action="delete.php">
<input type='hidden' id='pid' name='pid' value='<?php echo $row['id']; ?>'>
<button id="send" type="submit">Delete</button>
</form>
</th>
</tr>
<?php
 
?>

这是ajax功能

$(document).ready(function (e) 
  $("#del").on('submit',(function(e) 
    e.preventDefault();
    $.ajax(
          url: "delete.php",
      type: "POST",
      data:  new FormData(this),
      contentType: false,
          cache: false,
      processData:false,
      beforeSend:function()
         return confirm("Are you sure you want to delete this?");
      ,
      success: function(data)
        

         alert("Delete Successful");
    window.location.reload(); 

        ,
        error: function(e) 
        

                   
     );
  ));
);

而无论我想删除哪条记录都应该询问,应该要求确认。

答案

使用classname class="del"而不是id id="del"。每次提交它的唯一执行第一个表格

<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Button</th>
</tr>
</thead>
<tbody>
<?php 
$stmt = $DB_con->prepare("SELECT * FROM people");
$stmt->execute();
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
?>
<tr><td><?php echo $row['id']; ?></td>
<td><?php echo $row['name']; ?></td>
<form method="post" class="del" action="delete.php">
<input type='hidden' class='pid' name='pid' value='<?php echo $row['id']; ?>'>
<button id="send" type="submit">Delete</button>
</form>
</th>
</tr>
<?php
 
?>
另一答案

在这里创建无效的html

while(...)...'>删除...

在每个循环运行中,您将在每次运行中创建3个具有相同ID的对象。 ID不得多次定义。

解决方案:

  • 不要使用id=and使用可选的class=
  • 在id上附加一个唯一的数字,例如id="del-<?php echo $row['id']; ?>"

以上是关于Ajax确认仅询问一个数据的主要内容,如果未能解决你的问题,请参考以下文章

Django-choices字段值对应关系(性别)-MTV与MVC科普-Ajax发json格式与文件格式数据-contentType格式-Ajax搭配sweetalert实现删除确认弹窗-自定义分页器

仅使用 ajax 加载新数据

Ajax 仅适用于第一次从 php 中的 while 循环中获取数据

如何仅使用 ajax 和 javascript 连接到 mysql 数据库?

是否可以仅使用 csrf 字段而不是令牌来使用 ajax 请求插入数据?

Jquery Ajax 无法将数据定向到服务器