Модальное изображение не работает для нескольких изображений

#javascript #php #html #bootstrap-4

#javascript #php #HTML #bootstrap-4

Вопрос:

Я использую Modal для отображения нескольких изображений во всплывающем окне, оно отлично работает для первого изображения, но не для всех изображений, которые извлекаются PHP во время цикла.

Кто-нибудь может помочь отобразить все выбранные изображения с помощью Modal?

Код:

     <?php
    $id = $_GET['id'];
    $result = mysqli_query($connection, "SELECT * FROM test WHERE id = $id");
    $rows = mysqli_num_rows($result);
    
    if($id){
    while($img = mysqli_fetch_assoc($result)) {
    ?>                
        
    
    <tr>
        <td><img style="height:100px;" id="myImg" src='<?php echo "uploads/" . $img['img_url']; ?>'>
                    
    <div id="myModal" class="modal">
      <span class="close">amp;times;</span>
      <img class="modal-content" id="img01">
      <div id="caption"></div>
    </div>
                    </td>
                    
                </tr>
                
                <?php
        }
    }
    ?>
            </tbody>
            <tfoot>
                <tr>
                    <th>Images</th>
                    <
                </tr>
            </tfoot>
            </tbody>
          </table>

    <script>
    // Get the modal
    var modal = document.getElementById("myModal");
    
    // Get the image and insert it inside the modal - use its "alt" text as a caption
    var img = document.getElementById("myImg");
    var modalImg = document.getElementById("img01");
    var captionText = document.getElementById("caption");
    img.onclick = function(){
      modal.style.display = "block";
      modalImg.src = this.src;
      captionText.innerHTML = this.alt;
    }
    
    // Get the <span> element that closes the modal
    var span = document.getElementsByClassName("close")[0];
    
    // When the user clicks on <span> (x), close the modal
    span.onclick = function() { 
      modal.style.display = "none";
    }
    </script>
 

Заранее спасибо.

Комментарии:

1. Идентификаторы должны быть уникальными в рамках HTML-документа — выводя одни и те же идентификаторы несколько раз в вашем цикле, вы нарушаете это.

2. @CBroe Можете ли вы помочь мне с кодом для получения нового идентификатора для каждого нового изображения?