Так что есть два шага, если я правильно понимаю.
1. получить список жанров и заполнить им поле выбора.
2. получить список фильмов, если выбрана опция в окне выбора.
Первый шаг вы можете сделать с помощью метода innerHTML. Для каждого возвращаемого жанра вы создаете строку типа <option value='genre'>genre</option>
. С innerHTML вы добавляете эти опции в поле выбора. Свойство value - это то, что вы используете, чтобы увидеть, какая опция выбрана.
Затем мы добавляем обработчик событий в dropbox, чтобы наш скрипт реагировал на изменения, сделанные пользователем. Событие, которое мы слушаем, называется «изменение», и оно вызовет функцию «getMovies». См. Документы Mozilla для получения дополнительной информации. event.target.value
даст вам значение выбранного параметра, который вы можете использовать в качестве идентификатора жанра.
Внутри этой функции вы выполните второй вызов API, чтобы получить список фильмов.
Простой пример без вызова API:
let genreDropdown = document.getElementById('genre');
genreDropdown.innerHTML = getGenres();
genreDropdown.addEventListener("change", getMovies);
function getGenres(){
let genres = ['action', 'romcom', 'thriller']; //this would be replaced with the api call to get the genres
let innerHtml = '';
for(var i = 0; i < genres.length; i++){
var option = '<option value='+genres[i]+'>'+genres[i]+'</option>';
innerHtml += option;
}
return innerHtml;
}
function getMovies(event) {
let genre = event.target.value;
alert(genre) //you can replace this with the api call to get the movies.
}
<select id='genre'>
<option>loading...</option>
</select>