JeroenE
Terugkerende gebruiker
- Lid geworden
- 20 mrt 2005
- Berichten
- 1.950
Hallo,
Hier komen meerdere scripts aan te pas: javascript (waar ik de foutmelding krijg), php en ajax.
Het doel:
Door op een link te klikken een div verbergen en een andere tevoorschijn halen. Dit werkt.
In die laatste div een slideshow starten met afbeeldingen uit een specifieke map die verschillend is per categorie. Hier gebeurt er niets
De foutmelding die ik in de ontwikkelingstools vind, is "aimages[nimg]" is undefined
De code bestaat uit verschillende delen.
De link:
De functies: [JS]
var aimages = new Array();
var nimg;
var nnum = 0;
function ffadebg() {
document.getElementById('backgrounddiv').style.opacity = nimgop;
if (!bfadein && (nimgop > 0)) {
nimgop = nimgop - 0.05;
setTimeout('ffadebg();', 20);
} else if (!bfadein && (nimgop <= 0)) {
document.bgimg.src = aimages[nimg].src;
bfadein = 1;
nimg = (nimg < aimages.length-1) ? nimg + 1 : 0;
setTimeout('ffadebg();', 500);
} else if (bfadein && (nimgop < 1)) {
nimgop = nimgop + 0.05;
setTimeout('ffadebg();', 20);
} else if (bfadein && (nimgop >= 1)) {
bfadein = 0;
fadetimeout = setTimeout('ffadebg();', 5000);
}
}
function fgetcategory(ncat_id) {
document.getElementById("homediv").style.display = "none";
document.getElementById("menudiv").style.display = "block";
document.getElementById("socialdiv").style.display = "block";
document.getElementById("sidemenudiv").style.display = "block";
document.getElementById("contentdiv").style.display = "block";
document.getElementById("creditsandcounterdiv").style.display = "block";
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("contentdiv").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "getcategory.php?c="+ncat_id, true);
xmlhttp.send();var bfadein = 0;
nimg = Math.floor(Math.random()*(aimages.length-1));
var nimgop = 1;
var fadetimeout;
document.bgimg.src = aimages[nimg].src;
nimg++;
document.getElementById('backgrounddiv').style.opacity = 1;
setTimeout('ffadebg();', 5000);
}[/JS]
De aangeroepen pagina die de array moet vullen met de juiste afbeeldings-urls:
Als ik kijk in de ontwikkelingstool, dan staat de innerHTML zoals ik die het vraag.
Alleen "ziet" de functie de inhoud van de array als niet bestaande.
Ook als ik het slideshow gerelateerd javascript in de php-file zet, gebeurt er niets en krijg ik zelfs geen enkele fout te zien omdat de functie van de slideshow zelf niet eens aangeroepen wordt, terwijl deze wel duidelijk in de innerHTML staat van de contentdiv
Hoe kan ik dit oplossen.
Hier komen meerdere scripts aan te pas: javascript (waar ik de foutmelding krijg), php en ajax.
Het doel:
Door op een link te klikken een div verbergen en een andere tevoorschijn halen. Dit werkt.
In die laatste div een slideshow starten met afbeeldingen uit een specifieke map die verschillend is per categorie. Hier gebeurt er niets
De foutmelding die ik in de ontwikkelingstools vind, is "aimages[nimg]" is undefined
De code bestaat uit verschillende delen.
De link:
Code:
<a href="javascript:void(0);" onclick="javascript:fgetcategory(1);">link</a>
De functies: [JS]
var aimages = new Array();
var nimg;
var nnum = 0;
function ffadebg() {
document.getElementById('backgrounddiv').style.opacity = nimgop;
if (!bfadein && (nimgop > 0)) {
nimgop = nimgop - 0.05;
setTimeout('ffadebg();', 20);
} else if (!bfadein && (nimgop <= 0)) {
document.bgimg.src = aimages[nimg].src;
bfadein = 1;
nimg = (nimg < aimages.length-1) ? nimg + 1 : 0;
setTimeout('ffadebg();', 500);
} else if (bfadein && (nimgop < 1)) {
nimgop = nimgop + 0.05;
setTimeout('ffadebg();', 20);
} else if (bfadein && (nimgop >= 1)) {
bfadein = 0;
fadetimeout = setTimeout('ffadebg();', 5000);
}
}
function fgetcategory(ncat_id) {
document.getElementById("homediv").style.display = "none";
document.getElementById("menudiv").style.display = "block";
document.getElementById("socialdiv").style.display = "block";
document.getElementById("sidemenudiv").style.display = "block";
document.getElementById("contentdiv").style.display = "block";
document.getElementById("creditsandcounterdiv").style.display = "block";
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("contentdiv").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "getcategory.php?c="+ncat_id, true);
xmlhttp.send();var bfadein = 0;
nimg = Math.floor(Math.random()*(aimages.length-1));
var nimgop = 1;
var fadetimeout;
document.bgimg.src = aimages[nimg].src;
nimg++;
document.getElementById('backgrounddiv').style.opacity = 1;
setTimeout('ffadebg();', 5000);
}[/JS]
De aangeroepen pagina die de array moet vullen met de juiste afbeeldings-urls:
PHP:
<?php
include("dbconnect.php");
include("data1.php");
include("translations.php");
$nc = $_GET["c"];
$afiles = scandir("./backgrounds/icri");
$nbi = count($afiles);
$nbj = 0;
echo "<script language='javascript' type='text/javascript'>
";
for ($nx = 0; $nx < $nbi; $nx++) {
if ($afiles[$nx] != "" || false) {
$afileext = explode(".",$afiles[$nx]);
if (strtolower($afileext[1]) == "jpg" && ($afiles != "." || "..")) {
echo "aimages[" . $nbj ."] = new Image();
";
echo "aimages[" . $nbj . "].src = './backgrounds/icri/" . $afiles[$nx] . "';
";
$nbj++;
}
}
}
echo "</script>
<div id='backgrounddiv'>
<center>
<img id='backgroundimg' name='bgimg'>
</center>
</div>";
?>
Als ik kijk in de ontwikkelingstool, dan staat de innerHTML zoals ik die het vraag.
Alleen "ziet" de functie de inhoud van de array als niet bestaande.
Ook als ik het slideshow gerelateerd javascript in de php-file zet, gebeurt er niets en krijg ik zelfs geen enkele fout te zien omdat de functie van de slideshow zelf niet eens aangeroepen wordt, terwijl deze wel duidelijk in de innerHTML staat van de contentdiv
Hoe kan ik dit oplossen.