PHP& MySQL数据库显示多个图像

时间:2010-10-08 17:45:23

标签: php jquery mysql

我需要帮助显示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

1 个答案:

答案 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,你需要给它们必须是唯一的。