Autor Zpráva
Ivorius
Profil
Zdravím, mám na stránkách barevníček a potřebuji aby po vybrání ze selectu se mi změnila barva divu. Zatím jsem si připravil tohle:
<script type='text/javascript'>
          <!--
          var bgBarevnice = new Array();
             bgBarevnice[8] = "#0000FF"; 
             bgBarevnice[13] = "#40FFFF"; 

          function changeBGcolor(whichID){
            document.getElementById(barvy_barev).background = bgBarevnice[whichID];
            document.write(whichID);
          }
          //-->
</script>


to bgBarevnice se mi natahuje z dabatbáze - je to id atributu a jeho hodnota (hexadecimální kód barvy).

V samotném kodu mám
<div class='barvy' id='barvy_barev'>
..
</div> 

<select name='at_1' onchange='changeBGcolor(this.options[this.selectedIndex].value)'> 
	 <option></option> 
	 <option value='8'>Modrá</option> 
	 <option value='13'>Tyrskysově modrá</option> 

</select> 



Nevíte proč mi to po vybrání té barvy nezmění pozadí toho divu barvy_barev?
habendorf
Profil
document.getElementById(barvy_barev).style.background
Ivorius
Profil
Tak jsem to doplnil, bohužel to nefunguje. Mám takové podezření, že se nepředává to ID neboť to document.write(whichID); nic nevypisuje.
centi
Profil
Chýbajú ti úvodzovky (a doporučujem property backgroundColor):

document.getElementById("barvy_barev").style.backgroundColor = bgBarevnice[whichID];

Každopádne, chybu ti to muselo nejakú hodiť. Na debugovanie doporučujem buď obyčajnú alert() funkciu, ktorú použiješ pred a za problémovým miestom a jednoducho tak zistíš, čo za problém nastal. Prípadne si pre Firefox stiahnuť rozšírenie FireBug, čo je geniálny nástroj na debugovanie javascriptu, a po jeho nainštalovaní používať funkciu console.log().
habendorf
Profil
<script type='text/javascript'>
<!--
var bgBarevnice = new Array();
bgBarevnice[8] = "#0000FF";
bgBarevnice[13] = "#40FFFF";
function changeBGcolor(whichID){
document.getElementById('barvy_barev').style.background = bgBarevnice[whichID];
}
//-->
</script>
<div class='barvy' id='barvy_barev'> ...
</div>
<select name='at_1' onchange='changeBGcolor(this.value)'>
	<option>
	</option>
	<option value='8'>
	Modrá
	</option>
	<option value='13'>
	Tyrskysově modrá
	</option>
</select>
Ivorius
Profil
Kluci, díky moc. Já jsem se s tím trápil skoro celý den, asi se tam javascript fakt budu muset naučit :)
peta
Profil
Ivorius
stacilo by si precist hlaseni z JS konzoly.
Nebo ve ff oznacit text a prohlidnout si Selection source, coz by mel byt vygenerovany kod. Co tam vlastne mas.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: