tekst tonen als variabele = true

Status
Niet open voor verdere reacties.

klodder

Gebruiker
Lid geworden
22 aug 2007
Berichten
6
hey iedereen,
ben sinds kort bezig met html/javascript, voor een project op school. Ik heb mijn site door middel van een tabel in het midden van de pagina gezet (met grote rand) en heb aan de rechterkant van mijn tabel een kolom waarin mijn menu staat. Nu is mijn vraag, kan ik, als ik bijvoorbeeld op Home druk, dat er dan links een tekst verschijnt?
misscien stomme vraag, maar het lukt niet. Krijg steeds Fout op Pagina en er gebeurt niks. Heb nu dit:
in head:
HTML:
<script language="javascript">
var uitvoeren=0
function c(n)
{
if n='home'
{
uitvoeren=1}
if n='links'
{
uitvoeren=2
}
}
</script>
en dan bij body:
HTML:
<table width="744" height="451" border="0" bordercolor="#FFFFFF" background="headphone.jpg" align="center"  style="position:relative top:50%;">
  <tr>
    <td width="351" height="443">
   
	
    <div style="text-align:left; color:#CC0033;" class="container" >
	<script>
	if (uitvoeren==1)
	{
    document.write('hier komt de tekst van home te staan')
	}
if (uitvoeren==2)
{
document.write('hier komt de andere tekst te staan')
}
	</script>
    </div>   </td>
En dan natuurlijk bij onclick button 1: onClick="c(1)"
en bij button 2: onClick="c(2)"

ik kan ook verschillende functies maken, dus een voor de home button en eentje voor de andere buttons,
maar als ik dan document.write doe, opent hij een nieuwe, blanke pagina waar de tekst komt te staan.

Kan iemand vertellen wat ik fout doe?
 
Laatst bewerkt:
In het script wat je geeft zitten meerdere fouten. De code in de head defineert een functie. De code in de body wordt meteen uitgevoerd.

Dus wat er gebeurd op jouw pagina is chronologisch dit:
1) var uitvoeren = 0
2) functie gedefineerd
3) script in body wordt uitgevoerd, uitvoeren is nog steeds 0 dus script doet niks
4) er wordt op een knop gelikt, de waarde van uitvoeren wordt verandert.

Dat gaat natuurlijk niet werken. De tweede fout is het gebruikt van document.write(). Deze functie kan niet meer gebruikt worden om je pagina uit te breiden op het moment dat de pagina klaar is met laden. Je zou immers buiten de <html> tags schrijven. Daarom start de browser een lege pagina waarin geschreven wordt. Dit is ook wat je ziet gebeuren in het tweede script wat je uitlegt.

Daarnaast zitten er syntax fouten in je script. Een if statement gaat als volgt:
Code:
if (variable == waarde)
{
}

Jij gebruikt "if variable=waarde". Daarmee zet je de waarde in de variable in plaats van dat je het controleert, en er moeten haakjes om de expressie. Je kunt hier ook nog eens het beste een switch statement gebruiken

Wat moet je dan wel doen?
Je begint goed met een container div. Die container moet je via javascript kunnen gebruiken. Dit kan het beste door de div een id mee te geven:
HTML:
<div id="div_container" style="text-align:left; color:#CC0033;" class="container" ></div>

Nu moet je de functie in je head nog aanpassen om er mee te kunnen werken. Je moet met javascript de inhoud van de container aanpassen. Dat kan zo:
HTML:
<script type="text/javascript">
var uitvoeren=0
function c(n)
{
  var div_container = document.getElementById("container");
  switch(n)
  {
  case "home":
    div_container.innerHTML = "HTML code die in de container terecht moet komen.";
    break;
  case "pagina1"
    div_container.innerHTML = "Andere HTML code die in de container terecht moet komen.";
    break;
  }
}
</script>
 
Laatst bewerkt:
Bedankt voor je reactie. Heb het idd inmiddels opgelost met html. Ik wist dat als je een variabele moest controleren, je (var==waarde) moest gebruiken, maar ik dacht dat het anders zat met argumenten. Ik ben namelijk pas een paar dagen aan de gang met javascript. In ieder geval hartstikke bedankt voor je hulp, ik snap ook je code. Het enige wat ik niet snap, is waar de break; voor dient..?

Groeten Klodder
 
De break "breekt" uit de huidige loop of switch (geen if statements). Als je break niet zou gebruiken zou je door gaan in het volgende blok. Bijvoorbeeld deze code:

Code:
switch(variable)
{
case 1:
  alert('variable is 1');
case 2:
  alert('variable is 1 of 2');
case 3:
  alert('variable is 1,2 of 3');
}

Na elke alert gaat de code gewoon verder in het volgende blok. Als variable dus 1 is dan krijg je 3 alerts in dit geval. Als je elk blok afsluit met "break;" dan gaat de code verder buiten de switch statement :)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan