Подтверждение Ajax запрашивает только одну информацию - PullRequest
0 голосов
/ 24 апреля 2019

Я реализовал функцию ajax beforeSend, в которой есть функция verify (), проблема в том, что в коде я хочу удалить первое значение, пока оно запрашивает подтверждение, но если я нажимаю второе, третье или четвертое,он просто идет по 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) 
        {

        }           
     });
  }));
});

, тогда какспрашивайте, неважно, какую запись я хочу удалить, она должна запросить подтверждение.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

Здесь вы создаете недопустимый HTML:

while (...) {... '> Delete ...}

В каждом цикле запуска вы создаете 3 объекта с одинаковым идентификатором.в каждом заезде.Идентификатор не должен определяться несколько раз.

Решения:

  • Не используйте id= и используйте необязательный class=.
  • Добавьте уникальный номер кидентификатор, например id="del-<?php echo $row['id']; ?>"
0 голосов
/ 24 апреля 2019

используйте 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
} 
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...