Autor Zpráva
Hapipo
Profil
Ahoj, používám knihovnu Fancybox pro vytvoření carouselu na galerii na mém mini eshopu. Mám stránku, kde nahrávám foto produktů na FTP, kdy se mi zapíše cesta k tomuto obrázku do databáze společně s názvem, cenou, rozměry a popisem. Bohužel se mi nadaří zobrazit obrázky i přes to, že cestu zkontroluji po vypsání stránky přes "zobrazit zdrojový kód" - tento kód je vypsán úplně stejně, jako kdybych to napsal bez databáze a to se mi galerie zobrazuje.

<!-- Product Card -->
        <div class="product-card" data-id="<?php echo $id; ?>" data-name="<?php echo $name; ?>" data-price="<?php echo $price; ?>">
            <div class="product-image-container">
                <img src="<?php echo $gallery_images[0]; ?>" alt="<?php echo $name; ?>" class="product-image">
            </div>
            <div class="product-info">
                <div class="product-header">
                    <p class="product-name" onclick="openPopup('popup<?php echo $id; ?>')"><?php echo $name; ?></p>
                    <p class="product-id"><?php echo $id; ?></p>
                </div>
                <div class="product-description">
                    <p><?php echo $description; ?></p>
                    <div class="product-dimensions">
                        <i class="fa-solid fa-maximize"></i> <?php echo $dimensions; ?>
                    </div>
                </div>
                <div class="product-bottom">
                    <p class="product-price"><?php echo number_format($price, 0, ',', ' ') . ' Kč'; ?></p>
                    <button class="add-to-cart">Přidat do košíku</button>
                </div>
            </div>
        </div>

        <!-- Popup for Product -->
        <div id="popup<?php echo $id; ?>" class="product_popup" data-id="<?php echo $id; ?>" data-name="<?php echo $name; ?>" data-price="<?php echo $price; ?>">
            <div class="product_popup-content">
                <div class="product_close" onclick="closePopup('popup<?php echo $id; ?>')">&times;</div>
                <div class="product_popup-left">
                    <div class="f-carousel" id="myCarousel">
                        <?php foreach ($gallery_images as $image) { ?>
                            <div class="f-carousel__slide" data-thumb-src="<?php echo $image; ?>">
                                <img alt="<?php echo $name; ?>" data-lazy-src="<?php echo $image; ?>" />
                            </div>
                        <?php } ?>
                    </div>
                </div>
                <div class="product_popup-right">
                    <h2 class="product_product-title"><?php echo $name; ?></h2>
                    <p class="product_product-description"><?php echo $description; ?></p>
                    <p class="product_product-price"><?php echo number_format($price, 0, ',', ' ') . ' Kč'; ?></p>
                    <button id="popup-add-to-cart">Přidat do košíku</button>
                </div>
            </div>
        </div>
        <?php
    }
} else {
    echo "0 results";
}

$conn->close();
?>

Mám takovou náhledovou kartu produktu s jedním obrázkem, který se bez problémů načítá. Pokud se na tuto kartu klidne, otevře se mi podrobnější popup s kartou produktu a tam se již obrázky nezobrazí (používaná knihovna Fancybox). Nevíte někdo co s tím?

Galerie funkční (bez použití výpisu z databáze)

Galerie nenačtená (výpis cesty z databáze)

Moc děkuji za rady.
anonym_
Profil *
Hapipo:
Zkontroluj si cesty k obrázkům. Jinde chyba nebude, a současně my ji nezjistíme (nevidíme generovaný kód).

Otázka 10minutového debuggingu na tvé straně.
Hapipo
Profil
anonym:

Kontroloval jsem vygenerovanou cestu ve zdrojovém kódu a vypadá v pořádku - viz níže:


Případně odkaz na stránku je: war-archery.cz/eshop/index.php

Jedná se o obrázky po otevření popup okna při kliknutí na název položky. Výsledek bez použití databáze je na stránce zde: war-archery.cz/eshop/index.html
Snažil jsem se hledat, používat AI, ale vše se zdá být v pořádku.
Budu rád za případné další typy...
anonym_
Profil *
Hapipo:
Máš špatně cesty k obrázkům, na těch lokacích, které uvádíš, prostě neexistují.


anonym:
Případně používáš data-lazy-src atribut, který se nepřepisuje na src. To už by ale nebyla chyba v linkování obrázku, ale v rámci JS galerie, kterou používáš.

Obrázek imageschata.png (3. produkt), ani images/chata.png, ani images/imageschata.png neexistuje.
Hapipo
Profil
anonym:
Můžeš mi prosím pomoc s konkrétním řešení? Děkuji
anonym_
Profil *
Hapipo:
Konkrétně bohužel neporadím, protože:

1. tu JS galerii, kterou používáš a která ti pravděpodobně nepřevádí data-lazy-src na src, neznám a nechci ji pitvat (atribut data-lazy-src sám o sobě obrázek nezobrazí),
2. některé obrázky mají špatnou lokaci sami o sobě a já nevím, jaká je správná, viz: snipboard.io/WZQb7y.jpg

Začni tím, že si zjistíš, na jaké URL ty obrázky reálně jsou.
Pokračuj tím, že otevřeš dokumentaci JS galerie, kterou používáš a podíváš se, jestli máš správně zápis s data-lazy-src atributem.
V kódu té statické stránky pracuješ se src (nikoliv data-lazy-src) atributem (možná už jen ztransformován tou JS knihovnou, nevím), viz scrren: snipboard.io/rlSUpI.jpg

Příčina může být na více místech, potřebovalo by to z mojí strany větší debugging než z tvé, který svůj kód a používané knihovny znáš (měl bys znát) více.

Jestli chceš i tak pomoci, napiš mi sem mail, můžeme se domluvit na podobnějším řešení. Takhle od oka během chvíle v diskusi bohužel neporadím.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0