probleemeen met scriptje

Status
Niet open voor verdere reacties.

jorants

Gebruiker
Lid geworden
22 mei 2006
Berichten
105
ik heb het volgende scriptje geschreven:
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>bio</title>
<script language="JavaScript" type="text/javascript">
<!--
function bio () {

var naam = prompt ("wat is je naam?")

var l = prompt ("hoe lang ben je?");

var g = prompt ("hoefeel weeg je");

var k = l*l;

var punten = g/k;

var totaal = if punten 20-25 (op gewicht);
             
						 if punten 25-30 (te zwaar);
						 
						 if punten 0-20 (te licht);
						 
						 else (ongezond zwaar);
						 
document.write (naam + " is " + totaal)				 
<a href="bio ()">voeg persoon toe</a>						 
}
//-->
</script>

</head>
<body onload="bio ()">
</body>
</html>


nu probeer ik voo met kaar te krijgen at op de var l en g deze formule word toegepast: g/(l*l)

en vervolgens de uitkomst daarvan als basis dient voor var totaal.
en dat met je naam er voor word weer gegeven en je meerdere personen kan toevoegen.

weet iemand waar de fout(en) zit?

alvast bedankt
 
Bij het toekennen van de tekst aan totaal ging het fout en je kunt document.writeln niet meer gebruiken nadat de pagina is geladen.

Dit script gebruikt daarom innerHTML:
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

<html> 
<head> 
<title>bio</title> 
<script language="JavaScript" type="text/javascript"> 
<!--
function bio () { 

var naam = prompt ("wat is je naam?");

var l = prompt ("hoe lang ben je?");

var g = prompt ("hoeveel weeg je?"); 

var k = l*l; 

var punten = g/k;

var totaal;

if (punten < 20) totaal = "te licht";
else if (punten < 25) totaal = "op gewicht";
else if (punten < 30) totaal = "te zwaar";
else totaal = "ongezond zwaar";

document.getElementById("resultaat").innerHTML += naam + " is " + totaal + "<br>";

};

//-->
</script>

</head> 
<body onload="bio()">
<a href="javascript:bio()">voeg persoon toe</a>
<div id="resultaat"></div>
</body> 
</html>
Vr.Gr. Egel.
 
ik heb mijn scriptje nog wat aangepast, nu maakt het ook nonderscheid in de leeftijd.

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>bio</title>
  <script language="JavaScript" type="text/javascript">
<!--

function bio1() {

var naam = prompt ("wat is je naam?");

var l = prompt ("hoe lang ben je? (in meters, bij komma getal een punt gebruiken)");

var g = prompt ("hoeveel weeg je? (in kg)");

var k = l*l;

var punten = g/k;

var totaal;

if (punten < 14.4) totaal = "te licht";
else if (punten < 19.4) totaal = "op gewicht";
else if (punten < 24.4) totaal = "te zwaar";
else totaal = "ongezond zwaar";

schrijf (totaal, naam);

};

function bio2() {

var naam = prompt ("wat is je naam?");

var l = prompt ("hoe lang ben je? (in meters, bij komma getal een punt gebruiken)");

var g = prompt ("hoeveel weeg je? (in kg)");

var k = l*l;

var punten = g/k;

var totaal;

if (punten < 13.75) totaal = "te licht";
else if (punten < 18.75) totaal = "op gewicht";
else if (punten < 23.75) totaal = "te zwaar";
else totaal = "ongezond zwaar";
schrijf (totaal, naam);

};

function bio3() {

var naam = prompt ("wat is je naam?");

var l = prompt ("hoe lang ben je? (in meters, bij komma getal een punt gebruiken)");

var g = prompt ("hoeveel weeg je? (in kg)");

var k = l*l;

var punten = g/k;

var totaal;

if (punten < 13.3) totaal = "te licht";
else if (punten < 18.3) totaal = "op gewicht";
else if (punten < 23.3) totaal = "te zwaar";
else totaal = "ongezond zwaar";
schrijf (totaal, naam);


};

function oud() {

var naam = prompt ("wat is je naam?");

var l = prompt ("hoe lang ben je? (in meters, bij komma getal een punt gebruiken)");

var g = prompt ("hoeveel weeg je? (in kg)");

var k = l*l;

var punten = g/k;

var totaal;

if (punten < 20) totaal = "te licht";
else if (punten < 25) totaal = "op gewicht";
else if (punten < 30) totaal = "te zwaar";
else totaal = "ongezond zwaar";

schrijf (totaal, naam);

};
function schrijf (a, b) {

document.getElementById("resultaat").innerHTML = b + " is " + a + "<br>";

}
//-->
  </script>
</head>
<body>
 
 <script language="JavaScript" type="text/javascript">

<!--Hide from non-JavaScript Browsers

  var password = prompt("hoe oud ben je?","");

  //EERSTE PASSWORD
  switch(password){
  case"1" : window.location="javascript:bio1()"
  break ;


  //TWEEDE PASSWORD
  case"2" : window.location="javascript:bio2()"
  break ;

  //DERDE PASSWORD
  case"3" : window.location="javascript:bio3()"
  break ;

  //FOUTMELDING BIJ VERKEERD WACHTWOORD
  default : window.location="javascript:oud()"
  break ;

  }

//Stop hiding-->

</script>

<a href="javascript:bio()">voeg persoon toe</a><a href="javascript:bio()">
<div id="resultaat"></div>
</body>
</html>

wat heb ik fout gedaan? :o

ps: later komen er nog meer leeftijden bij maar die hebben allemaal een aandere reeks met getallen, maar dit is het standaart idee
 
case 1: bio1(); break; zou het moeten zijn bij de switch() :)

Maar je kunt het beter iets ingewikkelder maken om het een hele hoop te vereenvoudigen. ;)
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> 
 <head>
 <title>bio</title>
 <script type="text/javascript"> 
  <!--

   var data = [
    [12, 14.40, 19.40, 24.40],
    [14, 13.75, 18.75, 23.75],
    [16, 13.30, 18.30, 23.30],
    [18, 20.00, 25.00, 30.00],
    ''];

   function bio() {
    var naam = prompt("wat is je naam?");
    var leeftijd = prompt("wat is je leeftijd?");
    var li = -1; // leeftijd index
    for (var i = 0; i < data.length - 1; i++) if (data[i][0] <= leeftijd) li = i;
    var l = prompt("hoe lang ben je? (in meters, bij komma getal een punt gebruiken)");
    var g = prompt("hoeveel weeg je? (in kg)");
    var k = l*l;
    var punten = g/k;
    var totaal;
    if (li < 0) totaal = "te jong voor deze test";
     else if (punten < data[li][1]) totaal = "te licht";
     else if (punten < data[li][2]) totaal = "op gewicht";
     else if (punten < data[li][3]) totaal = "te zwaar";
     else totaal = "ongezond zwaar"; 
    document.getElementById("resultaat").innerHTML += naam + " is " + totaal + ".<br>"; 
    };

   // -->
  </script>
 </head>
 <body onload="bio()">
  <a href="javascript:bio()">voeg persoon toe</a><a href="javascript:bio()"></a>
  <div id="resultaat"></div> 
 </body> 
</html>
Zie bijlage. :)

data is een twee-dimensionale array waarin alle leeftijden en gewichtsgrenzen staan.

data[0][0] == 12; data[0][1] == 14.40; data[0][2] == 19.40; data[0][3] == 24.40;
data[1][0] == 14; data[1][1] == 13.75;
enzovoort.

Zo kun je makkelijk leeftijden toevoegen. :cool: ;)


Vr.Gr. Egel.
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan