sql >> データベース >  >> RDS >> Mysql

MySQLデータベースからfancyboxにajaxコンテンツを動的にロードする

    あなたができることは、データベースから次の(関連する)アイテムを取得し、それらを jsonに保存することです。 :

    のような変数
    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
    

    次に、push その変数からbeforeLoad内のギャラリーへのアイテム のようなコールバック:

    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
    

    通知 スイッチを使用していること (done 変数)からプッシュ アイテムは1回だけです(スイッチをリセットする必要がある場合があります ただし、fancyboxを閉じた後)

    JSFIDDLE

    :アイテムは、DOMの最後のアイテム(この場合は4番目)が表示された後でのみ追加(プッシュ)されるため、ギャラリーを逆方向に参照し始めると、新しいアイテムは表示されませんが、2番目のループが表示されます。

    loopを設定することをお勧めします falseに でも




    1. Mac OSXLionからPostgreSQL9.0.4を完全にアンインストールしますか?

    2. PHP / MySQL-すでに自動生成されたテーブルの行の削除リンクを自動生成する方法は?

    3. 行ごとではなくMySQLでテーブル全体を保持するSELECTFORUPDATE

    4. SELECT * FROM tbl WHERE clm LIKE CONCAT('%'、<other sql query LIMIT 1>、'%')-どのように?