Witam
Jestem początkującym programistą, mam problem z wyświetleniem diva z zawartością pliku php i wysłanie z nim informacji GET. Poniższy kod sprawdza się, lecz w większej ilości albumów będzie sporo linijek kodu
<script type="text/javascript">
var ObiektXMLHttp = false;
if (window.XMLHttpRequest) {
ObiektXMLHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
function getData(zrodlo) {
if (ObiektXMLHttp) {
ObiektXMLHttp.open("GET", zrodlo);
ObiektXMLHttp.onreadystatechange = function() {
if (ObiektXMLHttp.readyState == 1) {
document.getElementById('tresc_album2').innerHTML = "Ładowanie..."; }
if (ObiektXMLHttp.readyState == 4) {
document.getElementById('tresc_album2').innerHTML = ObiektXMLHttp.responseText;
}
}
ObiektXMLHttp.send(null);
}
}
window.onload = Laduj;
function Pokaz(x)
{
getData('album.php?album='+x);
var div = document.getElementById('szary_album');
var div2 = document.getElementById('tresc_album');
div.style.display = "block";
div2.style.display = "block";
}
function Pokaz_z()
{
var div = document.getElementById('szary_album');
var div2 = document.getElementById('tresc_album');
div.style.display = "none";
div2.style.display = "none";
}
function Laduj()
{
document.getElementById('album_zamknij').onclick = Pokaz_z;
document.getElementById('album_otworz1').onclick = function() { Pokaz(1) };
document.getElementById('album_otworz2').onclick = function() { Pokaz(2) };
document.getElementById('album_otworz3').onclick = function() { Pokaz(3) };
document.getElementById('album_otworz4').onclick = function() { Pokaz(4) };
}
</script>
<?php
echo"
<div id='tresc'>
<div id='album1'>
obrazek do albumu 1<br>
<div id=\"album_otworz1\">album1</div><br>
<div id=\"album_otworz2\">album2</div><br>
<div id=\"album_otworz3\">album3</div><br>
<div id=\"album_otworz4\">album4</div><br>
</div>
</div>
";
echo"
<div id='tresc_album' style=\"display: none;\">
<div id=\"album_zamknij\">zamknij</div>
<div id='tresc_album2'>
Nie wybrano album.
</div>
</div>
<div id='szary_album' style=\"display: none;\">
</div>
";
?>
chcę zastąpić kod:
document.getElementById('album_otworz1').onclick = function() { Pokaz(1) };
document.getElementById('album_otworz2').onclick = function() { Pokaz(2) };
document.getElementById('album_otworz3').onclick = function() { Pokaz(3) };
document.getElementById('album_otworz4').onclick = function() { Pokaz(4) };
kodem:
var Tablica = new Array(1, 2, 3, 4)
for (n = 0; n < Tablica.length; n++){
document.getElementById('album_otworz'+Tablica[n]).onclick = function() { Pokaz(Tablica[n]) };
return false;
}
niestety tylko przy kliknięciu na div z id album_otworz1 działa, a na reszcie nie działa.
Proszę o pomoc