Pegitron Ответов: 1

Цикл через результаты json для различных результатов OMDB


я вроде как новичок в php + javascript.

Я настроил "милый файловый браузер", чтобы посмотреть на общую папку на моем компьютере. он прекрасно работает, отображает все файлы и папки без проблем.

Теперь я пытаюсь использовать OMDB для поиска постеров фильмов, а затем отображать их для каждого названия фильма.

в настоящее время он работает, но только с первым названием фильма. при осмотре элемента в FF он действительно показывает все остальные плакаты, но только в пределах первого

Ниже показаны мои отдельные папки фильмов - никаких проблем, работает нормально....

Что я уже пробовал:

если(scannedFolders.длина) {

scannedFolders.forEach(функция(f) {

ВАР itemsLength = Ф.предметы.длина,
имя = escapeHTML(f.name);

если(itemsLength) {
икона = '';
}

if(itemsLength == 1) {
itemsLength += 'item';
}
else if(itemsLength > 1) {
itemsLength += 'items';
getPoster(имя);
}
еще {
itemsLength = 'пусто';
}


папка var = $('
  • '+ имя + '
  • ');

    папка.appendTo(список файлов);
    });

    }


    теперь я хочу добавить постеры фильмов с помощью omdb...

    function getPoster(finfo)
    {
    	var filmName;
    	var realName;
    	filmName = finfo;
    	realName = filmName.split('.')[0];
    	var omdbUrl = "http://www.omdbapi.com/?t=" + realName;			
    	//document.getElementById("songdisplay").innerHTML = url;	
    	
    	                $.ajax({
                        url: omdbUrl,
                        //force to handle it as text
                        dataType: "text",
                        success: function(data) {
                            
                            //data downloaded so we call parseJSON function 
                            //and pass downloaded data
                           var json = $.parseJSON(data);
                            //now json variable contains data in json format
                            //let's display a few items
                            document.getElementById("folders").innerHTML += "<img id='imgposter'  class='imgPoster'  src='" + json.Poster + "'></img>";
                        }
    	
    					});
    
    	
    }



    но все отображается в первой папке, а не помещается каждое изображение в свой собственный LI....

    https://i.stack.imgur.com/qHhdS.jpg

    любая помощь была бы очень благодарна

    1 Ответов

    Рейтинг:
    1

    Sebastiaan Meijerink

    Мы будем этот код

    document.getElementById("folders").innerHTML += "<img id='imgposter'  class='imgPoster'  src='" + json.Poster + "'></img>";

    Не пытается что-то положить в него на Ли.
    Он просто добавляет его в контейнер "папки";

    Я также сомневаюсь, что вы понимаете, что функция getPoster будет асинхронизирована.
    Итак, код
    var folder = $('' + name + '');
    
    folder.appendTo(fileList);


    Будет запущен до завершения работы функции getPoster