Tekst (Verwisseld steeds bij herladen pagina)

Status
Niet open voor verdere reacties.

TomasH

Gebruiker
Lid geworden
23 mei 2008
Berichten
42
Beste,

Er is een effect dat ik al vaker gezien had, en nu lijkt het mij wel leuk dit ook op mijn site te hebben. Het probleem is dat ik alleen met simpele HTML werk, en dus niet weet hoe dit moet. De webmaster van de betreffende website die dit effect heeft antwoord niet op mijn mail. Het betreft het effect op deze pagina: http://www.vonscheven.net/spreekwoord.asp.
Als je op F5 drukt zie je dat de tekst telkens veranderd. Hoe moet dit?

Mvg, TomasH
 
deze persoon gebruikt ASP om aan de server kant (dus voordat jouw browser iets krijgt) een random functie langs een tabel met spreekwoorden en betekenissen te laten gaan.


Je kan dit zelf met javascript doen, dit is dan alleen niet server-side maar client-side.

PHP:
//html/js

<script type='text/javascript'>


function randomInt(pMax) {
	var getal = parseInt(Math.random(pMax));
	return getal;
}


var spreekwoorden = ['1e spreekwoord','2e spreekwoord','3e spreekwoord'];
var betekenissen = ['1e betekenis','2e betekenis','3e betekenis'];

//zorg er altijd voor dat er evenveel betekenissen zijn als spreekwoorden!

var randomgetal = randomInt(spreekwoorden.length);

//nu naar de browser outputten
document.write(spreekwoorden[randomgetal]);
document.write('<br><br>dit betekent:<br>');
document.write(betekenissen[randomgetal]);


</script>


even uit het hoofd, maar zoierts moet werken.

:thumb:
 
Laatst bewerkt:
Je script even letterlijk overgenomen, echter als ik op F5 druk blijft spreekwoord 1, dit betekend, betekenis 1 staan...
 
ohja, mijn fout.
Math.random moet vermenigvuldigd worden, niet als param eegegeven worden ^^"

dus, verander deze regel:
PHP:
    var getal = parseInt(Math.random(pMax));
in
PHP:
    var getal = parseInt(Math.random()*pMax);


:thumb:
 
Oei, ik zie dat ik tussen de ' en ' geen HTML kan plaatsen. Dat wil ik wel graag...
 
jawel hoor, dat kan best.

PHP:
//javascript

var spreekwoorden = ['<b>1e</b> spreekwoord','<b>2e</b> spreekwoord','<b>3e</b> spreekwoord'];
zou moeten werken!


Oh, waar je wel op moet letten is dat je OF je single-quotes escaped (in plaats van ' gebruik je dan \' ) of alleen dubbele quotes gebruikt ( " ). Dit omdat de strings worden aangegeven met enkele quotes, dus als je die zelf ook gaat gebruiken dan krijg je rpoblemen.



:thumb:
 
Laatst bewerkt:
Ik volg het even niet meer... Single-quotes escaped? Dubbele quotes? De HTML die ik erin wil is een kleine afbeelding die linkt naar een externe website...
 
okay, ik leg het eventjes uit.


In html kan je, bij tags die zogenaamde parameters hebben, waardes invoeren. Klinkt vreemd, maar dit ken je:
HTML:
<img src='hallo.jpg'>
je gebruikt dus de parameter 'src' om aan te geven waar de locatie van het plaatje staat.

All right. In het voorbeeld hierboven gebruikte ik single quotes. Een voorbeeldje:
HTML:
<img src='hallo.jpg'>
<img src="hallo.jpg">
<img src=hallo.jpg>
deze werken allemaal precies hetzelfde, het enige verschil is de quotes. In het 1e gebruikte ik 'single-quotes' ( ' ), in het 2e dubbele ( " ) en in de laatste helemaal geen.

Omdat het slecht is (ofwel, doe dit nooit) om geen quotes te gebruiken (3e voorbeeldje), moet je dus of dubbele of enkele quotes gebruiken.



Okay. Javascript werkt zo, dat je text altijd moet aangeven binnen quotes. je mag zelf weten welke! Dit betekent dat dit dus hetzelfde is:
PHP:
//javascript

var eenvariabele = 'hallo daar!';
var nogeenvar = "hallo daar!";

Nu, als jij in je html tags ook enkele of dubbele quotes gebruikt, krijg je in javascript een error. Bekijk dit voorbeeld:
PHP:
//javascript

var htmltext = "Dit is <img src="hallo.jpg"> een stukje text met plaatje";
var eenvar = 'Dit is <img src='hallo.jpg'> ook een stukkie text met platje';
Zoals je ziet in de kleuropmaak van helpmij wordt hallo.jpg blauw. Terweil het een variabele is!
Dit betekent dat de je browser dus dit ziet:
PHP:
//javascript

var htmltext = "Dit is <img src=";
hallo.jpg
"> een stukje text met plaatje";

Dan werkt het dus niet meer.

Zie eens dit:
PHP:
//javascript

var bla = 'dit is een plaatje: <img src="hallo.jpg">!!!!';
Dit werkt wel goed.



Wat je dus moet doen is je aan 1 soort quote houden. Dus, als je je variabele aangeeft met enkele quotes, alleen maar dubbele erbinnen gebruiken.


Nog 1 ding: escapen. Wat dit doet is niet zo bijzonder, maar kort gezegd: het zorgt ervoor dat je binnen enkele quotes, ook enkele quotes kan gebruiken.
Zie dit voorbeeld eens:
PHP:
//javascript

var bla = 'een stukje text, dit is 'speciaal' en werkt niet';

//dat geeft dus een error.
//dit, daarintegen, niet:

var foo = 'een stukje text, dit is \'speciaal\' en werkt WEL!!!!';

Kortweg, door er een backslash voor te zetten, negeert de javascript het als 'quote' maar laat het wel in textvorm zien. Zo kan je dus ook dubbele quotes escapen.



Hoop dat je deze beknopte samenvatting begrijpt,


V.
 
Laatst bewerkt:
Niet helemaal... Wat moet ik veranderen aan?:
Code:
<script type='text/javascript'>


function randomInt(pMax) {
    var getal = parseInt(Math.random()*pMax);  
    return getal;
}


var spreekwoorden = ['<A href="http://www.voorbeeld.nl/"><IMG src="afbeelding.gif"></A>','<img src='<A href="http://www.voorbeeld2.nl/"><IMG src="afbeelding2.gif"></A>','<A href="http://www.voorbeeld3.nl/"><IMG src="afbeelding3.gif"></A>'];

//zorg er altijd voor dat er evenveel betekenissen zijn als spreekwoorden!

var randomgetal = randomInt(spreekwoorden.length);

//nu naar de browser outputten
document.write(spreekwoorden[randomgetal]);



</script>
 
ohja, nog iets, je scriptje. Omdat het een array gebruikt mischien een beetje onduidelijk, hier een voorbeeld:

PHP:
//javascript

var spreekwoorden = ['<img src='bla.jpg'>' , '(...)']; 
//zoals je ziet is 'bla.jpg' blauw... dat moet dus niet.
Dit werkt dus wel:
PHP:
//javascript

var spreekwoorden = ['<img src="bla.jpg">','<img src=\'bla.jpg\'>'];
Zoals je ziet heb ik even als voorbeeld dubbele, en escaped quotes gebruikt.


:thumb:
 
Laatst bewerkt:
PHP:
<script type='text/javascript'>


function randomInt(pMax) {
    var getal = parseInt(Math.random()*pMax);  
    return getal;
}


var spreekwoorden = ['<a href="http://www.voorbeeld.nl"><img src="afbeelding.gif"></a>',
                    '<a href="http://www.voorbeeld2.nl/"><img src="afbeelding2.gif"></a>',
                    '<a href="http://www.voorbeeld3.nl/"><img src="afbeelding3.gif"></a>'];




//zorg er altijd voor dat er evenveel betekenissen zijn als spreekwoorden!

var randomgetal = randomInt(spreekwoorden.length);

//nu naar de browser outputten
document.write(spreekwoorden[randomgetal]);



</script>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan