>

<?php
  while ($row = mysqli_fetch_array($query)) {
    echo '<div class="announcementSlider" id="button">
            <img src="pictures/blank photo.png" class="teacherpic"><br>
            <span>'.$row['LastName'].'</span><br>
            <span>'.$row['Grade'].' - </span>
            <span>'.$row['Section'].'</span>
          </div>';
  }
?>
<script type="text/javascript">
  document.getElementById("button").onclick = function () {
    location.href = "teacherinfo.php";
  };
</script>

이 코드는 mysql의 데이터를 기반으로 div를 생성하는 데 사용됩니다. 데이터베이스의 모든 행에 대해 코드는 그림, 이름, 등급 및 섹션으로 div를 생성합니다. div 생성에는 문제가 없습니다. 유일한 문제는 내가 사용한 스크립트입니다. 첫 번째 div를 클릭하면 스크립트가 작동하지만 다른 div를 클릭 할 때마다 스크립트가 작동하지 않습니다. 내 코드에 문제가 있습니까? 누구든지이 문제를 해결하는 방법을 가르쳐 줄 수 있습니까?

  • 답변 # 1

    getElementById는 첫 번째 일치 항목 만 반환합니다.

    getElementByClassId 대신 getElementsByClassName을 사용하십시오. 일치하는 모든 항목을 반환합니다. 아래 코드를 사용할 수 있습니다.

    var a = document.getElementsByClassName("announcementSlider");
    for (i=0; i<a.length; i++) {
         a[i].onclick = function () {
             location.href = "teacherinfo.php";
         };
    }
    
    

  • 이전 php - mysql - 처음 3 ~ 2 자만 선택하십시오 (비 :regexp를 사용하는 문자열의 숫자) 값
  • 다음 Django Rest Framework에서 JWT 토큰을 어떻게 사용합니까?