In the font given below, the logic fails to capture the click on the select
element returning only the first option
, and so it appears to be an index problem - selectedIndex
.
Observe :
function selecionar(link) {
<!-- aqui chamamos as duas divs no nosso html: descricao -->
var element1 = document.getElementById("poster");
var element2 = document.getElementById("titulo");
<!-- ISSO DEVERIA FUNCIONAR CONFORME PRETENDIA - jogar o conteúdo do texto dentro do controle da condição para ser comparado sem repetição. Infelizmente ainda há problema -->
var el = document.getElementById("lista")
var opt = el.options[el.selectedIndex].text;
<!-- A rotina abaixo, faz o trabalho de capturar só a string após a última barra invertida "/" -->
var urlcomp = link;
var tamurl = urlcomp.length;
for (var i = tamurl; i >= 0; i--) {
if (urlcomp.substring(i, i - 1) == '/') {
var antes = i;
var depois = urlcomp.substring(antes, tamurl);
break;
}
}
<!-- Daqui em diante, o controle de fluxo 'if' nos dirá o qual informação deve ser apresentada através do que o usuário escolheu -->
if (depois == opt) {
element1.innerHTML = "<img src='https://sites.google.com/site/mplayerplugin/repositorio/big_buck_bunny.jpg' width='126' height='90'>";
element2.innerHTML = "<p>big buck bunny</p>";
} else if (depois == opt) {
element1.innerHTML = "<img src='https://sites.google.com/site/mplayerplugin/repositorio/madagascar_2.jpg' width='126' height='90'>";
element2.innerHTML = "<p>madagascar 2</p>";
} else if (depois == opt) {
element1.innerHTML = "<img src='https://sites.google.com/site/mplayerplugin/repositorio/procurando_dory.jpg' width='126' height='90'>";
element2.innerHTML = "<p>procurando dory</p>";
} else if (depois == opt) {
element1.innerHTML = "<img src='https://sites.google.com/site/mplayerplugin/repositorio/meu_malvado_favorito_2.jpg' width='126' height='90'>";
element2.innerHTML = "<p>meu malvado favorito 2</p>";
}
}
select { color: red; }
<select id="lista" onchange="selecionar(this.options[this.selectedIndex].value)">
<option value="" selected="selected"></option>
<option value="https://sites.google.com/site/mplayerplugin/repositorio/big_buck_bunny">big_buck_bunny</option>
<option value="https://sites.google.com/site/mplayerplugin/repositorio/madagascar_2">madagascar_2</option>
<option value="https://sites.google.com/site/mplayerplugin/repositorio/procurando_dory">procurando_dory</option>
<option value="https://sites.google.com/site/mplayerplugin/repositorio/meu_malvado_favorito_2">meu_malvado_favorito_2</option>
</select>
<br><br>
<p id="poster"></p>
<p id="titulo"></p>
I see that something is missing to instruct the code.
I THINK - Go through the items and point to the variable
opt
which was selected inoption
.
Because I want to make use of variable that is much more practical and elegant. Like this:
var el = document.getElementById("lista")
var opt = el.options[el.selectedIndex].text;
if (depois == opt) {
...
} else if (depois == opt) {
...
} else if (depois == opt) {
...
} else if (depois == opt) {
...
}
}
And avoid filling in manually:
if (depois == 'big_buck_bunny') {
...
} else if (depois == 'madagascar_2') {
...
} else if (depois == 'procurando_dory') {
...
} else if (depois == 'meu_malvado_favorito_2') {
...
}
}