使用PHP时出现FancyBox错误。有任何想法吗?

时间:2012-12-12 23:05:46

标签: php jquery css fancybox

只是要分享我的代码,看看是否有人能够发现造成这种情况的原因。

错误如下: “无法加载请求的内容。 请稍后再试。“

ShowAll.PHP:

    <?
include_once "db.php";
session_start();
$gid=$_SESSION['gid'];
$result = mysql_query("SELECT id,groupid FROM images where gid='".$gid."' and imagetype='1' ORDER BY id");
print(" <div id='wrapper'>  
        <!--start: Container -->
        <div class='container'>
        ");
        $j=0;
        print("     
        <div class='row'>
            <div class='span6'>
                <h1>My Gallery</h1>
                <br>
            </div>
            <div class='span6'>
            </div>
        </div>
        <!--start: Row -->
        <div class='row'>");
        while($row = mysql_fetch_array($result)){
            if ($j==6){
                $j=0;
                print("</div>");
                        print("         
                <!--start: Row -->
                <div class='row'>");
                print("<div class='span2'>");
                print("<p><div class='picture'><a rel='image' href='largeimage.php?groupid=".$row['groupid']."'><img src='showimage.php?id=".$row['id']."'><div class='image-overlay-zoom'></div></a></div>");
                print("</div>");
                $j++;
            }else{
                print("<div class='span2'>");
                print("<p><div class='picture'><a rel='image' href='largeimage.php?groupid=".$row['groupid']."'><img src='showimage.php?id=".$row['id']."'><div class='image-overlay-zoom'></div></a></div>");
                print("</div>");
                $j++;
            }
        }
print("</div>");?>

largeimage.php:

<?php

$groupid=$_GET['groupid'];


print("             <img src='showimagelarge.php?groupid=".$groupid."'>");

?>

showimagelarge.php:

include_once "db.php";

session_start();



$gid=$_SESSION['gid'];

header('Content-type: image/jpeg');

$query = "SELECT image from images where groupid=". intval($_GET["groupid"])." and gid='".$gid."' and imagetype='2'";

$rs = mysql_fetch_array(mysql_query($query));

echo base64_decode($rs["image"]);

?>

showimage.php:

include_once "db.php";

session_start();



$gid=$_SESSION['gid'];

header('Content-type: image/jpeg');

$query = "SELECT image from images where id=". intval($_GET["id"])." and gid='".$gid."'";

$rs = mysql_fetch_array(mysql_query($query));

echo base64_decode($rs["image"]);

?>

1 个答案:

答案 0 :(得分:3)

您正以这种方式呈现图像链接:

<div class='picture'><a rel='image' href='largeimage.php?groupid=".$row['groupid']."'>....

...所以您的链接href将不会有任何图片扩展名(jpg,png,gif)。因为该fancybox不知道要处理的内容type,所以消息

The requested content cannot be loaded. Please try again later.

您需要在fancybox自定义脚本中强制type内容到image。这里记录了http://fancyapps.com/fancybox/#support,FAQ标签第5号

你可以这样做:

<script type="text/javascript">
  $(document).ready(function(){
    $(".picture a").fancybox({
      "type": "image"
    });
  });
</script>

......或

<script type="text/javascript">
  $(document).ready(function(){
    $('a[rel="image"]').fancybox({
      "type": "image"
    });
  });
</script>