我在文件夹中有一些图片,在数据库中有它们的路径。我想用这些图片(上一页和下一页按钮)制作一个照片库,而不需要重新加载页面。
这里是ajax函数(如果您有任何没有ajax的想法,我将不胜感激):
function next_img(id_add, curr_img_id){
//alert(id_add + curr_img_id);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("recent_img").src = "<?php echo "user_images/" . $row['Username'] . "/"?>" +this.responseText;
}
};
xmlhttp.open("GET","gallerynext.php?add="+id_add + "&img="+curr_img_id,true);
xmlhttp.send();
}
下面是下一张图片的php:
<?php
include("inc/conectare_la_baza_de_date.php");
$add_id = $_GET['add'];
$img_id = $_GET['img'] + 1;
$selectNextImgQuery = "SELECT * FROM imagini WHERE anunt_id='$add_id' AND img_id='$img_id'";
$selectNextImgResult = mysqli_query($link, $selectNextImgQuery);
$nextImg = mysqli_fetch_assoc($selectNextImgResult);
$nextImgPath = $nextImg['img_path'];
echo $nextImgPath;
?>
这是html中的图像部分:
<img id="recent_img" src=<?php echo $imgPath; ?> alt="image" />
<a class="next_img" onclick="next_img(<?php echo $row['id_anunt'] ?> , <?php echo $img_id ?>)">❯</a>
<a class="prev_img" onclick="prev_img(<?php echo $row['id_anunt'] ?> , <?php echo $img_id ?> )">❮</a>
好吧,问题是当我按下下一个按钮,它会给我下一个图像,但…仅此而已。我不知道如何以及在何处增加当前图像id以便能够浏览所有图像。
我还得想办法在按“下一步”时从最后一张照片跳到第一张照片,在按“上一张”时从第一张照片跳到最后一张照片。图片位于销售公告内,还有另一个“下一步”和“上一步”按钮用于更改公告。。所以这组图像也会改变。如果你能在不重新加载页面的情况下给我一个提示,我也会很感激的。希望你能理解我的问题
下面是它的实际外观:
1条答案
按热度按时间wydwbb8l1#
一种可能的解决方案是使用ajax加载所有图像路径(一旦页面加载完毕),而不是在单个请求中逐个加载。一旦获得了所有图像路径,例如json格式,就可以在javascript环境中构建逻辑。例如,右键单击时递增,左键单击时递减,如果到达最后一个索引或周围的相反站点,则跳到第一个索引。
另一个可能的解决方案,没有ajax,是用php将所有图像实际输出到图库中,一旦页面加载完毕,就将图库的逻辑绑定到css类中,例如“show”和“hide”——下面是一个使用这种方法的示例实现。
setinterval函数只是每2000毫秒切换一次实际图像的额外功能。
评论回复:
$all\imgs\u data保存一个关联数组,其中包含来自id为1的用户的所有图像
所以像这样循环