我需要帮助显示MySQL数据库中的图像。 我所拥有的是一个动态PHP / HTML表,它有多个页面和分页链接。 表格布局为:书名,作者,出版商,类别和图像。 我可以使用连接脚本连接到数据库 - 工作正常。 我可以在每个上述位置(包括图像)的正确列和行中看到表格的所有信息。 此时我将鼠标悬停在图像下方的链接上并使用jQuery弹出更大的图像视图,但这只能起作用 在每个HTMl页面的第一张图片上。
首先,我使用连接脚本连接到数据库 这是我用来查询数据库的代码:
这是jQuery脚本:
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$bg = ($bg=='#ffffff' ? '#FCFCFC' : '#ffffff'); // Switch the background color.
echo '<tr bgcolor="' . $bg . '">
<td id="books">' . '<h4>'. $row['booktitle'] .'</h4>'. '</td>
<td id="auth">' . $row['author'] . '</td>
<td id="publ">' . $row['publisher'] . '</td>
<td id="cat">' . $row['category'] . '</td>
<td id="img">'.'<img src="'. $row['image'].'" width="90"/>'.'<div span="getLargeImage">'.'<a href="'. $row['image'].'" id="popup">Larger view</a>'.'</span>'.'</td>
</tr>';
$(document).ready(function(){
$('#popup').hover(function(e) {
var getId = $(this).attr("id");
var getAttr = $(this).attr("href");
var html = '<div id="full_img">';
html += '<img src="'+ getAttr +' />';
html += '</div>';
//console.log(getId); //returns the a href id
//console.log(getAttr); //returns the a href link
$('body').append(html).children('#full_img').hide().fadeIn(100);
$('#full_img').animate({"width" : "0px","width" : "250px"}, 100);
$('#full_img').css('top', e.pageY + -160).css('left', e.pageX - 350);
}, function() {
$('#full_img').animate({"width" : "250px","width" : "0px"}, 100);
$('#full_img').fadeOut(10);
$('#full_img').remove();
});
});
正如我上面所说的,jQuery悬停/显示较大的图像仅适用于每个页面的第一行表格中的图像,以查看它在这一点上的工作原理冲浪:
http://stevenjsteele.com/websitedesign/php/database/index.php
任何帮助将不胜感激。 谢谢 ussteele
答案 0 :(得分:4)
问题在于你给每个人提供相同的id而不是给他们所有相同的类
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$bg = ($bg=='#ffffff' ? '#FCFCFC' : '#ffffff'); // Switch the background color.
echo '<tr bgcolor="' . $bg . '">
<td id="books">' . '<h4>'. $row['booktitle'] .'</h4>'. '</td>
<td id="auth">' . $row['author'] . '</td>
<td id="publ">' . $row['publisher'] . '</td>
<td id="cat">' . $row['category'] . '</td>
<td id="img">'.'<img src="'. $row['image'].'" width="90"/>'.'<div span="getLargeImage">'.'<a href="'. $row['image'].'" class="popup">Larger view</a>'.'</span>'.'</td>
</tr>';
然后定位课程
$(document).ready(function(){
$('.popup').hover(function(e) {
var getId = $(this).attr("id");
var getAttr = $(this).attr("href");
var html = '<div id="full_img">';
html += '<img src="'+ getAttr +' />';
html += '</div>';
//console.log(getId); //returns the a href id
//console.log(getAttr); //returns the a href link
$('body').append(html).children('#full_img').hide().fadeIn(100);
$('#full_img').animate({"width" : "0px","width" : "250px"}, 100);
$('#full_img').css('top', e.pageY + -160).css('left', e.pageX - 350);
}, function() {
$('#full_img').animate({"width" : "250px","width" : "0px"}, 100);
$('#full_img').fadeOut(10);
$('#full_img').remove();
});
还应该注意到你这样做。如果你想使用id,你需要给它们必须是唯一的。