Невозможно инициализировать Fancybox и PHP - PullRequest
2 голосов
/ 27 ноября 2011

Я установил fancybox в своем скрипте, но по какой-то причине вместо щелчка во всплывающем окне он просто щелкает по местоположению изображения. Я запускаю его через немного php-кода, который генерируется численно (на основе информации в базе данных). Таким образом, существует более одного блока кода, но по сути это один и тот же код. Я просто не знаю, как заставить это работать, любые предложения были бы велики. Мой код ниже.

<?php 
if(isset($_GET['package'])) {
    $package = ($_GET['package']);
    $arr = array();
    $items = "SELECT * FROM ind_products";
    $item_list = mysql_query($items);
    /*$row = mysql_fetch_array($item_list);*/
    while($row = mysql_fetch_array($item_list)) {
        $arr = explode(',',$row['packages']);
        if (in_array("$package",$arr)) {

        echo "<form action=\"\" method=\"post\" class=\"jcart\" >";
        echo "<div id=\"itemBox\" align=\"left\">";
        $item_name = ($row['item_name']);
        $size = ($row['size']);
        $description = ($row['description']);
        $id = ($row['id']);
        $photo = ($row['photo']);
        $photo2 = ($row['photo2']);

        if ($photo == '') {
            $photo = 'images/pph.jpg';
        }
        if ($photo2 == '') {
            $photo2 = 'images/pph2.jpg';
        }
        if ($description == '') {
            $description = 'Description goes here!';
        }
        echo "<input type=\"hidden\" name=\"my-item-id\" value=\"$id\">";       
        echo "<input type=\"hidden\" name=\"my-item-name\" value=\"$item_name\">";  
        echo "<input type=\"hidden\" name=\"my-item-price\" value=\"0.00\">";   
        echo "<input type=\"hidden\" name=\"my-item-url\" value=\"\">"; 

        echo "<p id=\"info_image\">";
        echo "<a id=\"single_1\" href=\"$photo2\">";
        echo "<img src=\"crop.php?h=85&w=85&f=$photo\" align=\"left\" alt=\"item images\" />";
        echo "</a>";
        echo "</p>";

        echo "<p id=\"info_box\">";
        echo "<span id=\"pro_name\">",$item_name,"</span>",'<br>';
        echo "<span id=\"pro_size\">",$size,"</span>",'<br>';
        echo "<span id=\"pro_des\">",$description,'<br>';   
        echo "<span id=\"pro_title\">Quantity</span><input name=\"my-item-qty\" type=\"text\" value=\"1\" size=\"3\" />";
        echo "<span id=\"pro_input\"></span><input type=\"submit\" name=\"my-add-button\" value=\"add to inquiry\" class=\"button\" />";    
        echo "</p>";
        echo "<div style=\"clear:both; margin-bottom:0.5em\"></div>";
        echo "</div>";
        echo "</form>";
        }else{

        // do nothing for now


        /*echo "<form action=\"\" method=\"post\" class=\"jcart\" >";
        echo "<div id=\"itemBox\" align=\"left\">";
        $item_name = ($row['item_name']);
        $size = ($row['size']);
        $description = ($row['description']);
        $id = ($row['id']);


        echo "<span id=\"pro_name\">",$item_name,"</span>",'<br>';
        echo "<span id=\"pro_size\">",$size,"</span>",'<br>';
        echo "<span id=\"pro_des\">",$description,'<br>';
        echo 'There are no products to display!!';
        echo "<div style=\"clear:both; margin-bottom:0.5em\"></div>";
        echo "</div>";
        echo "</form>"; */
        }
    }
}else{
    echo 'The packages are not set';
}
?>

Код причудливого ящика:

$(document).ready(function() {

       $("#single_1").fancybox({
          helpers: {
              title : {
                  type : 'float'
              }
          }
      });
});

Ответы [ 3 ]

1 голос
/ 27 ноября 2011

Сначала я пройду через поле "Необычные", как

http://fancybox.net/howto

, затем попробуйте это

$(document).ready(function() { 

       $("a#single_1").fancybox();
}); 

, если это сработает, начните добавлять свои настройки.

Я бы изменил ваш ID на класс

echo "<a class=\"single_1\" href=\"$photo2\">";          
echo "<img src=\"crop.php?h=85&w=85&f=$photo\" align=\"left\" alt=\"item images\" />";          
echo "</a>"; 

вместе с

$(document).ready(function() { 

       $("a.single_1").fancybox();
});  

, если вы планируете показывать несколько больших пальцев одновременно

1 голос
/ 27 ноября 2011

Вы уверены, что все необходимые скрипты (jquery + fancybox), а также все дополнительные загруженные js-скрипт / код были загружены / инициализированы без ошибок? любая возникающая ошибка javascript перед вызовом fancybox-setup-call будет препятствовать успешной инициации этого.

0 голосов
/ 27 ноября 2011

В соответствии с тем, что говорит Томас, прямо сейчас ваш echo id = \ "single_1 \" href = \ "$ photo2 \ line сгенерирует несколько объектов с одинаковым идентификатором, что, вероятно, остановит ваш fancybox.

echo "<a id=\"single_".$row['id']."\" href=\"$photo2\">"; 

$java = ' $(document).ready(function() {           
           $("#single_';
$java .= $row['id'];
$java .= '").fancybox({ 
             helpers: { 
                 title : {                    
                  type : 'float'  
          }   
     }      
   }); 
 }); 
 '; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...