【发布时间】:2017-11-25 21:17:34
【问题描述】:
我正在开发这个网页,它在某种画廊中显示一个产品的多个图像。但是,我在尝试让缩略图在单击时显示为主图像时遇到了很大的麻烦。
这是相关页面的链接:http://www.carbondelight.co.uk./prodview.php?id=50
我正在使用 bxslider (bxslider.com) 作为缩略图滑块,我最初的计划是简单地编写一些 JavaScript 来将主图像更改为相关的缩略图图像。虽然这是我卡住的地方,因为我想不出一个好的方法来实现这一点。
我已经研究过将所有主要图像设置为 display:none; 的方法。禁止一张图像,然后像 Sohtanaka 在他的教程 (http://www.sohtanaka.com/web-design/css-multiple-image-viewer-thumbnails/) 中所做的那样通过 javascipt 更改其显示属性,我已经研究过使用 JavaScript 更改主图像的 src 位置。
我会说我不是 PHP 或 JavaScript 方面的专家,所以我的代码在任何形式或形式上都没有效率,所以我想专注于简单地解决手头的问题,而不是将所有代码更改为让它更有效率。但是,如果我必须重写一些查询来完成这项工作,那么我会全力以赴。
如何让缩略图和主图像正常工作?
注意:我已经清理了代码并取出了一些简单的样式类以使其更具可读性。如果有好处,我也可以包含 CSS。
这是我的代码:
if (isset($_GET['id']))
$id = cleanString($_GET['id']);
$sql = "SELECT * FROM partTable WHERE partID='$id'";
$result = performQuery($sql);
$sql2 = "SELECT car FROM carTable WHERE carID='$result[6]'";
$result2 = performQuery($sql2);
$sql3 = "SELECT category FROM categoryTable WHERE categoryID='$result[7]'";
$result3 = performQuery($sql3);
$sql4 = "SELECT medImg, lrgImg FROM imageTable WHERE partID='$id'";
$result4 = mysql_query($sql4);
$rows = mysql_num_rows($result4);
$sql5 = "SELECT smlImg FROM imageTable WHERE partID='$id'";
$result5 = mysql_query($sql5);
$rows5 = mysql_num_rows($result5);
$row = mysql_fetch_row($result4);
echo "<a id='single_image' href='$row[1]'><img src='$row[0]' /></a>";
for ( $j = 1 ; $j < $rows ; $j++)
{
$row = mysql_fetch_row($result4);
echo "<a id='single_image' href='$row[1]'><img style='display:none;' src='$row[0]'/></a>";
}
echo "<div id='slider1'>";
for ( $j = 0 ; $j < $rows5 ; ++$j)
{
$row = mysql_fetch_row($result5);
echo "<div class='pv-thumb'><a href='javascript:void(0)' onclick='superalert()'><img src='$row[0]' /></a></div>";
}
echo "</div>";
【问题讨论】:
-
那么您发现您尝试的方法有什么问题。您提到您尝试使用
display:none并更改主图像的src,但您没有说明为什么不能使用它们。 -
他们的想法多于实际尝试。我想不出一种方法来实际实施这些想法。例如,如果您看到第一个图像包含默认设置为显示的顶部主图像,并且在 for 循环中我抓取所有其他图像并将它们设置为 display:none。我遇到的问题是编写一些 Javascript 来更改与单击的缩略图相关的主图像上的显示属性。
-
如果单击图像时没有出现图像,则问题可能出在 superalert() javascript 函数中。我们能看到那个代码吗?
-
抱歉 superalert() 只是一些测试,看看我是否可以在单击图像时运行一些 javascript。我现在已经删除了它,因为它实际上并没有做任何其他事情:alert("active").
-
好的,下面是一种可能的解决方案。顺便说一句,您的中等图片的来源是“carbondelight.co.uk./admin/image/proMed/95.jpg” - 您可能希望修复多余的点。
标签: php javascript