sql >> Databáze >  >> RDS >> Mysql

Dynamicky načítat obsah ajax na fancybox z databáze MySQL

Co můžete udělat, je získat přicházející (související) položky z databáze a uložit je do json proměnná jako :

var databaseResponse = [{
    href: "path/image05.jpg", // 4 are visible on page so
    type: "image",
    title: "Image #5",
    isDom: false
}, {
    href: "path/image06.jpg",
    type: "image",
    title: "Image #6",
    isDom: false
}, {
    href: "path/image07.jpg",
    type: "image",
    title: "Image #7",
    isDom: false
}]; // etc

Poté push položky z této proměnné do galerie v rámci beforeLoad zpětné volání jako :

var done = false; // initialize switch
jQuery(document).ready(function ($) {
    $(".fancybox").fancybox({
        // loop : false, // optional
        beforeLoad: function () {
            // here get next items from database 
            // and store them in a json variable
            // e.g. "databaseResponse"
            if ((this.index == this.group.length - 1) && !done) {
                for (var i = 0; i < databaseResponse.length; i++) {
                    this.group.push(databaseResponse[i]);
                };
                done = true; // push items only once
            }
        },
        afterClose: function () {
            done = false; // reset switch
        }
    });
}); // ready

Upozornění že používáme přepínač (done proměnná) na posunout položky pouze jednou (možná budeme muset resetovat přepínač po zavření fancyboxu)

JSFIDLE

POZNÁMKA :položky budou přidány (tlačeny) až poté, co uvidíme poslední položku v DOM (ve vašem případě 4.), takže pokud začnete procházet galerii pozpátku, nové položky neuvidíte, ale až do druhé smyčky.

Možná budete chtít nastavit loop na false ačkoli




  1. Export dotazu PostgreSQL do souboru csv pomocí Pythonu

  2. Slovník databáze DevOps pro začátečníky v MySQL

  3. Název parametru dotazu SQL musí být definován

  4. Jak odstranit všechny tabulky MySQL z příkazového řádku bez oprávnění k databázi DROP?