php - Bootstrap modal doesn't get user ID

one text

Solution:

Notice that every modal trigger button has a data-target attribute to define which modal will be opened.

In your case, the button of every row you used to triggered the modal have the same data-target, which is #confirmDelete. These modals behind also has the same id called #confirmDelete, so every time you hit the modal trigger button (all had the same data-target) then eventually it will shows up the very first modal element.

For a better understanding, compare my code to yours and see the differences.

<?php foreach ($utenti as $utente) { ?>
<tr>

  <th scope="row"> <?php echo $utente['idUser']?> </th>

  <td><?php echo $utente['nome']." ".$utente['cognome']?></td>
  <?php if($_SESSION['role'] == 1) {?>
  <td><?php echo $utente['az']?></td>
  <?php } ?>

  <td><?php echo $utente['email']?></td>

  <td class="text-warning"><a
    href="<?php echo 'editUser.php?user='.$utente['idUser']?>"><i
    class="fas fa-edit text-warning"></i></a></td>
  <!--    <td class="text-warning"><a href="  "><i class="fas fa-trash-alt text-danger"></i></a></td> -->
  <td class="text-danger">
    <button type="button" class="btn" data-toggle="modal"
            data-target="#confirmDelete_<?php echo $utente['idUser']; ?>"><i
      class="fas fa-trash-alt text-danger"></i><?php var_dump($utente['idUser']); ?>
    </button>
  </td>

  <div class="modal" tabindex="-1" role="dialog" id="confirmDelete_<?php echo $utente['idUser']; ?>">

    <div class="modal-dialog" role="document">

      <div class="modal-content">

        <div class="modal-header">
          <h5 class="modal-title">
            Attenzione <?php echo $utente['idUser']; ?></h5>

          <button type="button" class="close" data-dismiss="modal"
                  aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>

        <div class="modal-body">
          <p>Continuando eliminerai l'utente in maniera irreversibile</p>
        </div>

        <div class="modal-footer">
          <button type="button" class="btn btn-danger "
          ><a
            class="text-white btn-modal-confirm"
            href="<?php echo '?action=delete&user='.$utente['idUser']?>"
          >Elimina</a>
          </button>

          <button type="button" class="btn btn-secondary" data-dismiss="modal">
            Indietro
          </button>
        </div>

      </div>

    </div>

  </div>

</tr>

<?php }?>

In the above code, I gave every pair of modal elements (modal trigger button and modal ID) a unique data-target value and a unique element id.

...
<button type="button" class="btn" data-toggle="modal"
            data-target="#confirmDelete_<?php echo $utente['idUser']; ?>">
...
<div class="modal" tabindex="-1" role="dialog" id="confirmDelete_<?php echo $utente['idUser']; ?>">
...

Now each pair of modal elements have their own ids and they should be working the way you wanted.

Source