【问题标题】:how to popup images by click from the table column on the screen如何通过单击屏幕上的表格列来弹出图像
【发布时间】:2017-05-02 14:55:19
【问题描述】:

我是 PHP 和 Java 脚本的新手。我有一个有 5 行和 3 列的表。在每一行中都有一个图像显示在列中。图像路径存储在 db 表中。所以当我从 db 表中获取结果时,图像会正确显示。我正在使用 js 和 css 在单击时弹出图像。但问题是只有图像的顶行是弹出的,其他图像无法弹出。 这是php代码:

<table align = "center" border="1" cellspacing="7" cellpadding="7"> 
 <tr>
    <th>S.No.</th><th>Service ID</th><th>Service Type</th></th><th>Alloted Serviceman</th><th>service/Complaint Detail</th><th>Current Status</th><th>Service/Complaint Date</th><th>Payment</th><th>Service image</th>
</tr>
<?php
while($row1 = mysqli_fetch_array($result1))
{
?>

<tr>
    <td><?php echo ++$i;?></td><td><a href="servicedetail.php?scode=<?php echo $row1['service_id'];?>"><?php echo $row1['service_id'];?></a></td><td><?php echo $row1['service_type'];?></td><td><?php echo $row1['technician_name'];?></td><td style="max-width:200px;"><?php echo $row1['service_detail'];?></td><td><?php if ($row1['status'] == 1) { echo "Confirmed" ;} else { echo "Pending"; }?></td><td><?php echo $row1['service_date'];?></td><td><?php echo $row1['service_charges'];?></td><td><img id="myImg" src = "./<?php echo $row1['s_image'];?>" alt= "upload image" height="50" width="80"/></td>
</tr>

<?php } ?>
</table>
</fieldset>
<!-- The Modal -->                              
 <div id="myModal" class="modal">
  <!-- The Close Button -->
  <span class="close" onclick="document.getElementById('myModal').style.display='none'">&times;</span>
  <!-- Modal Content (The Image) -->
  <img class="modal-content" id="img01">
  <!-- Modal Caption (Image Text) -->
</div>

下面是帮助弹出图像的java脚本文件代码

// Get the modal
var modal = document.getElementById('myModal');
//window.alert(modal);
// 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";
} 

它显示表格列中的所有图像。但仅弹出行图像的顶部。在其他我点击图像,但它不能弹出。请提供解决方案。 谢谢。。

【问题讨论】:

    标签: javascript php jquery


    【解决方案1】:

    there should only be one unique id in HTML

    使用class代替id,使用getElementByClassName()代替,获取数组中的所有节点

    编辑:我在床上,我不喜欢在手机上使用编辑器

    一个 ID 在一个页面中应该是唯一的。但是,如果不止一个 指定ID的元素存在,getElementById()方法 返回源代码中的第一个元素。

    因此:

    <img class="myImg"
    
    img = document.getElementByClassName('myImg');
    

    【讨论】:

    • 感谢您的回复。我感谢您的建议。如果你用一个例子来解释会更有帮助。
    • 我没有看到你的代码,但我已经猜到你的问题是什么了。提示:getElementByClassName() 返回什么?如果您仍然无法搜索问题 13667533
    • 我做了更改,但没有任何效果我在这里发布了我添加到 js 文件中的代码 code var modal = document.getElementsByClassName('modal'); var img = document.getElementsByClassName('myImg'); //var modalImg = document.getElementById("img01"); var modalImg = document.getElementsByClassName("modal-content"); //window.alert(模态内容); img.onclick = function(){ modal.style.display = "block"; modalImg.src = this.src; } var span = document.getElementsByClassName("close")[0]; span.onclick = function() { modal.style.display = "none"; }
    • 您粘贴的内容不可读,请阅读此内容并查看是否可以解决您的问题,如果没有,您可能对代码进行了如此多的更改,您可能应该发布一个新问题并恢复又出问题了stackoverflow.com/questions/13667533/…
    • 它的工作就像一个魅力。您的建议帮助我开发代码。
    【解决方案2】:

    在 Stackoverflow 用户的帮助下,我能够解决问题,这里是代码

     var modal = document.getElementById('myModal');
    
    // Get the image and insert it inside the modal - use its "alt" text as a caption
    var img = document.getElementsByClassName('myImg');
    //window.alert(img);
    var i = img.length;
    var j;
    var modalImg = document.getElementById("img01");
    
    //var captionText = document.getElementById("caption");
    for(j=0;j<i;j++) {
        img[j].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");
    
    // When the user clicks on <span> (x), close the modal
        span.onclick = function() { 
      modal.style.display = "none";
    }
    }
    

    我只是在 php 中使用的图像标签中添加类 myImg

    【讨论】:

    • 非常感谢您修复只是为了关闭您需要添加的模式 var span = document.getElementsByClassName("close")[0];
    猜你喜欢
    • 2021-01-05
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    • 2022-06-15
    • 2018-09-18
    • 1970-01-01
    相关资源
    最近更新 更多