PHP에서 나쁘지는 않지만 Javascript는 이상한 모양의 PHP이며, 종종이 접근법을 반영합니다. 그것은 이상하게 행동하고, 나는 왜 그런지 모른다. 제 지식이 부족한 걸 용서해주십시오.PHP 및 Javascript 그림 갤러리 challenge - 모달이 올바른 이미지를 표시하지 않습니다.
나는 자바 스크립트뿐만 아니라 PHP를 사용하여 사진 갤러리를 프로그래밍하고있다. 사이트에 사진 갤러리가 하나만 있으면 잘 작동합니다. http://pilgrimstudio.ch/
하지만 동일한 사이트에 두 번째 갤러리가있는 경우 모달이 작동하지 않습니다. 나는 여러 가지 일을 시도했지만 아무 것도 효과가 없었습니다. 나는 다른 종류의 이상한 행동으로 끝을 맺었습니다. Javascript가 제대로 사진을 다루지 않는 것 같지만 왜 보이지 않습니다. 다음은 이상한 현재 종류입니다 : http://pilgrimstudio.ch/News (모달에는 첫 번째 그림 만 표시되고 축소판은 없으며 탐색 기능이 작동하지 않습니다).
<?php
// THIS IS ON THE SITE
$id = 1;
$images = array();
$images[] = array("C37AC30Harmonia/C37.jpg"=>"Die Studer C 37 Röhren Bandmaschine");
$images[] = array("C37AC30Harmonia/Harmonia.jpg"=>"Zwei der drei neuen Harmonia");
$images[] = array("C37AC30Harmonia/PumpHarmonium.jpg"=>"Das sehr seltene Pump-Harmonium");
three_images_row($images, $id);
$id++;
// THE FOLLOWING IS IN FUNCTIONS.INC.PHP
function three_images_row($images3row, $id) {
// MAIN PAGE PICTURE TABLE
\t echo '<table width="100%" border="0" align="center">
\t <tr> ';
\t
\t $number = 1;
\t $position = array("left", "center", "right");
\t $position_number = 0;
\t foreach($images3row AS $index => $value) {
\t \t foreach($value AS $pic => $desc) {
\t \t \t echo '
\t \t \t <td>
\t \t \t <div align="'.$position[$position_number].'">
\t \t \t <img class = "img_3" src="../images/'.$pic.'" title="'.$desc.'" onclick="openModal'.$id.'();currentSlide'.$id.'('.$number.')">
\t \t \t </div>
\t \t \t </td>';
\t \t \t $number++;
\t \t \t $position_number++;
\t \t \t
\t \t \t if ($position_number == 3) {
\t \t
\t \t \t \t echo '</tr><tr>';
\t \t \t \t $position_number = 0;
\t \t \t }
\t \t }
\t }
\t echo '</tr>
\t </table>';
// MODAL
\t echo '<div id="myModal'.$id.'" class="modal">
\t <span class="close cursor" onclick="closeModal'.$id.'()">×</span>
\t <div class="modal-content">';
\t $number = 1;
\t $count = count($images3row);
// Main picture in modal
\t foreach($images3row AS $index => $value) {
\t \t foreach($value AS $pic => $desc) {
\t \t
\t \t \t echo '<div class="mySlides'.$id.'">
\t \t \t <!--<div class="numbertext">'.$number.'/'.$count.'</div>-->
\t \t \t <img src="../images/'.$pic.'" style="width:100%">
\t \t \t </div>';
\t \t \t $number++;
\t \t }
\t }
// Navigation in modal
\t echo '<a class="prev" onclick="plusSlides(-1)">❮</a>
\t <a class="next" onclick="plusSlides(1)">❯</a>';
// Caption (= description)
\t echo '<div class="caption-container">
\t <p id="caption'.$id.'"></p>
\t </div>';
\t
// Column (= thumbnails)
\t echo '<div class="column-container">';
\t $number = 1;
\t foreach($images3row AS $index => $value) {
\t \t foreach($value AS $pic => $desc) {
\t \t \t echo' <div class="column">
\t \t \t <img class="demo'.$id.' cursor" src="../images/'.$pic.'" onclick="currentSlide'.$id.'('.$number.')" alt="'.$desc.'">
\t \t \t </div>';
\t \t \t $number++;
\t \t }
\t }
\t echo '</div>
\t </div>
\t </div>';
\t
\t ?>
\t
\t <script>
\t function openModal<?php echo $id?>() {
\t document.getElementById('myModal<?php echo $id?>').style.display = "block";
\t }
\t function closeModal<?php echo $id?>() {
\t document.getElementById('myModal<?php echo $id?>').style.display = "none";
\t }
\t function currentSlide<?php echo $id?>(n) {
\t showSlides(slideIndex = n);
\t }
\t
\t var slideIndex = 1;
\t showSlides(slideIndex);
\t function showSlides(n) {
\t var i;
\t var slides = document.getElementsByClassName("mySlides<?php echo $id?>");
\t var dots = document.getElementsByClassName("demo<?php echo $id?>");
\t var captionText = document.getElementById("caption<?php echo $id?>");
\t if (n > slides.length) {slideIndex = 1}
\t if (n < 1) {slideIndex = slides.length}
\t for (i = 0; i < slides.length; i++) {
\t slides[i].style.display = "none";
\t }
\t for (i = 0; i < dots.length; i++) {
\t dots[i].className = dots[i].className.replace(" active", "");
\t }
\t slides[slideIndex-1].style.display = "block";
\t dots[slideIndex-1].className += " active";
\t captionText.innerHTML = dots[slideIndex-1].alt;
\t }
\t </script>
\t
\t <?php
}
\t \t
?>
\t <script>
\t function plusSlides(n) {
\t showSlides(slideIndex += n);
\t }
\t </script>
내가 올바른 참조를 설정하려고 시도와 함께해야 할 일을했을 내가 PHP 함수로 자바 스크립트 기능의 몇 가지를 넣어 이유를 추측 : 여기
코드입니다 사진 (하지만 나는 시도한 모든 유사 콘텐츠를 기억하지 않습니다). 그리고 나는 분명히 그것으로 성공하지 못했습니다. 어쩌면 전체 코드에 결함이있어 훨씬 더 잘 수행 될 수 있습니까?도움에 감사드립니다! 그리고 다시, dilletic Javascript를 유감스럽게 생각합니다.
와우, 늦은 답장을 용서해주십시오! 나는 지금 막이 모든 위대한 답장을 보았고, 나는 그것을 읽고 이해할 시간이 필요하다. 그들 대단히 감사합니다! 누군가가 대답하면 전자 메일로 통보 될 것이라는 인상하에 있었지만 분명히 그렇지 않았습니다. 분명히 내 설정을 변경해야합니다. – Rumi