Динамическое заполнение слайдера изображений


Я использую плагин Vegas jQuery для отображения слайд-шоу для веб-сайта. Это работает следующим образом:

$("#example").vegas({
    slides: [
        { src: "/img/slide1.jpg" },
        { src: "/img/slide2.jpg" },
        { src: "/img/slide3.jpg" },
        { src: "/img/slide4.jpg" }
    ]
});

Я разработал (действительно простой) серверную часть php для добавления и удаления изображений.Но я не знаю, как справиться с этим при инициализации слайд-шоу.

Моей первой идеей было написать csv-файл, содержащий количество картинок после того, как пользователь добавит или удалит одну. Затем я могу прочитать этот файл с помощью javascript, чтобы создать массив и использовать его в slides.

Как это мне не кажется хорошим решением, не могли бы вы дать здесь какой-нибудь технический совет? Спасибо.

РЕДАКТИРОВАТЬ: Я, наконец, решил позвонить АЯКСУ $(document).ready:

$.ajax({
    type: "GET",
    url: "../admin/get_files.php",
    cache: false,
    datatype: "JSON",
    success: function(result){
        data = $.parseJSON(result);
        alert(data);

        $('#slider').vegas({
            slides: data,
            preload: true,
            overlay: '../img/overlays/06.png',
            transition: 'fade'
        });
    }
});

В get_files.php функция:

$dir = '../img/slider/accueil/';
$a = scandir($dir);
$b = count($a);
$res = array();
for($x = 2; $x < $b; $x++) {
    array_push( $res, "{ src: '../img/slider/accueil/" . $a[$x] . "' }");
}

echo json_encode($res); 

Предупреждение выдает этот массив: { src: '../img/slider/accueil/1.jpg' },{ src: '../img/slider/accueil/2.jpg' },{ src: '../img/slider/accueil/3.jpg' }, но ползунок не инициализируется... Есть какая-нибудь помощь?

Author: ahbon, 2016-03-08

1 answers

Я наконец-то понял это. Я пытался передать строку, но требовалась пара ключ/значение. Правильный способ сделать это:

Get_files.php функция:

$dir = '../img/slider/accueil/';
$a = scandir($dir);
$b = count($a);
$res = array();
for($x = 2; $x < $b; $x++) {
    array_push( $res, "../img/slider/accueil/" . $a[$x]);
}

echo json_encode($res); 

И функция js:

$.ajax({
    type: "GET",
    url: "../admin/get_files.php",
    cache: false,
    datatype: "JSON",
    success: function(result){
        data = $.parseJSON(result);
        var dataSrc = [];
        for (var i = 0; i < data.length; i++) {
            dataSrc.push({'src': data[i]});
        }            

        $('#slider').vegas({
            slides: dataSrc,
            preload: true,
            overlay: '../img/overlays/06.png',
            transition: 'fade'
        });
    }
});   
 0
Author: ahbon, 2016-03-11 13:04:10