beste php'ers,

ik wil graag een scriptje maken of ergens vandaag halen waarmee ik iemand 10sec of langer naar een advertentie kan leten kijken dat moet er zo uit gaan zien:

kijk minimal 10 sec. naar deze advertentie:
de advertentie

en dan na 10 sec.:

kijk naar nog een advertentie
de advertentie(nog steeds dezelfde advertentie)

maar dit moet allemaal gebeuren zonder dat de pagina wordt geherlaad

ik dacht dat dit wel met javascript + ajax zou moeten kunnen maar ben nog niet echt uitgekomen

wie kan mij helpen

groet bas
hopelijk komt er een skip link/knop wand hier haal je veel bezoekers mee weg mega iritant verplicht kijken naar ads.
Is dit niet bedoelt voor een onderzoekje ofzo? Iets psychologisch?
Hey,

Waarom moet dit persé met ajax?

Kan je niet gewoon alle inhoud meeladen vanaf het begin, je zet echter ad 2 op display:none met je css.

<script ..... >
function blaap(divToChange, Timer, changeMeTo)
{
var toot = document.getElementById["divToChange"];
if(toot )
{
if(toot.style.display != changeMeTo)
{
setTimeout ("changeDisplay("+toot+", "+changeMeTo+")",Timer
} 
}
}

function changeDisplay(divToChange, changeMeTo)
{
divToChange.style.display=changeMeTo;
}
</scirpt>

<body onload="blaap('divname',10000, 'block');">



denk niet dat ik alle code 100% correct heb opgeschreven maar zou je toch al een heel stuk op weg moeten zetten. Als je perse ajax wil kan dat natuurlijk, maar dan zal je toch ook een onload (of event) en een timer moeten gebruiken.
@sven het hoeft niet perse met ajax ik zei dat ik dacht dat dat wel met ajax zou kunnen:D

maar ik zal eens kijke naar jou scriptje en @jaron ik zal ook even naar jou link kijken:D

en sven je kan je code tussen de code tags zetten

ps ik bedenk me net een probleem wat nou als mensen javascipt uit hebben staan?
mischien dat het ook met php kan:S
Hey,

bij deze inderdaat omgezet in script tags...

heb dit ff snel in m'n middagpauze geschreven, is eerder voorbeeld of werkwijze. Als je't als echt script gaat gebruiken mss opschonen en personaliseren naar jouw noden.

Ik doe zelf heel veel met ajax (soms iets té zelfs), maar vind dat dit soort dingen echt enkel met js moet gedaan worden.

Of dit met php kan?
PHP staat op je server, en doet niets anders dan (in dit geval) een html pagina creëren en doorsturen naar de klant. De klant krijgt dus pas iets te zien waneer je php helemaal gedaan heeft met werken (neem dit met een korreltje zout aub).
Dus neen, zonder javascript kan dit niet.

Of je iets moet maken dat enkel met js werkt?
verstandig dat je er over nadenkt, voorzie zeker een link.
Eventueel kan je via get een var meegeven zodat je ook met een direct link dezelfde pagina kan laden waar advertentie 2 reeds staad.
dan kan je dit ook voor niet js ondersteunde browsers bouwen.

of met link onder de ad (ga naar volgende ad) of (voor de volledigheid) door
<meta HTTP-EQUIV="REFRESH" content="0; url=www.jesite.be/adpage.php?gotoad=2l">
te gebruiken. Dit laatste raad ik echter af, google houd niet zo van redirects, in welke vorm dan ook. Dus als je bij google wil scoren dit best niet doen (en trouwens text links voorzien is altijd een grootte +)

Cha Né
ok ik snap het behalfe Cha Né

ik heb nu dit:

<html>
<head>
<script>
function blaap(divToChange, Timer, changeMeTo)
{
eval("document.all."+divToChange+".style.visibility='visible';");
eval("document.all."+changeMeTo+".style.visibility='hidden';");
setTimeout ("changeDisplay('"+divToChange+"', '"+changeMeTo+"')",Timer);
}

function changeDisplay(divToChange, changeMeTo)
{
eval("document.all."+divToChange+".style.visibility='hidden';");
eval("document.all."+changeMeTo+".style.visibility='visible';");
}
</script>
</head>
<body onload="blaap('divname',10000, 'block')">
<div id="divname">deze staat er</div>
<div id="block">en nu deze</div>
</body>
</html>


maar dit werkt alleen in I.E. en misschien FireFox
Hey,

hoezo werkt dit niet in andere browsers?

een 'vuile' truc om het flitsen van visibility op te lossen is gebruik maken van display (deze neemd geen plek is wanneer hij op none staat in tegenstelling met visibility die enkel verbergt maar wel de ruimte van je hidden element in neemd)

een andere oplossing is mss iets ingewikkelder maar deste leuker:

je zet 3 div's neer boven op elkaar.

<div id="adone" style="position=absolute;top=0;left=0;z-index=1;"><img/></div>
<div id="adtwo" style="position=absolute;top=0;left=0;z-index=2;display:none;"><img/></div>
<div id="adontop" style="position=absolute;top=0;left=0;z-index=3;display:none;"></div>


Werkwijze:
De huidige adone is zichtbaar.
Na de timer voer je een functie uit die eerst adontop vult met de inhoud van adtwo. (innerHTML)
Daarna zet deze functie adontop display true.
Dan zet je adone display none
Dan adtwo display true
Dan adontop display none
Dan adontop innerHTML = ""

Het leuke hiermee is is dat je in verschillende browsers geen iritant geflikker ziet.
En je kan zo ook de inhoud laten in-faden in de adontop (maar da's een ander toppic vrees ik)


Zo ik hoop dat je er iets aan hebt. Deze dingen kan je maken met heel eenvoudige js die in alle browsers werkt (zelfs oudere) behalve als de client js zelf uitzet. Maar dan nog kan je aternative content voorzien die door js wordt gewist wanneer js wel aanstaat.
zou je van je eerste voorbeeld(de vuile truc) een stukje voorbeeld code kunnen maken en zou je ook van de 2de een voorbeeldje kunnen maken

Reageren