eerst controle invoerwaarden/daarna berekening en uitvoer op nieuwe pagina

Status
Niet open voor verdere reacties.

tiengemeten

Gebruiker
Lid geworden
9 jan 2008
Berichten
26
beste mensen,

ik had de volgende vraag: ik heb twee webpagina's.
pagina 1
De gebruiker voert een hoogte in. Javascript controleert direct of de hoogte tussen 0 en 5 inligt. Is dit niet het geval dan volgt achter het invoerveld een foutmelding.
Is de invoer correct dan mag de gebruiker op de button advies drukken.

pagina 2
Als de invoer op pagina 1 akkoord is en de gebruiker op de button advies heeft gedrukt gaat Javascript met de invoer rekenen. Daaruit volgt op een nieuwe pagina (pagina 2) een advies. Dit kan zijn:
- alles is goed - OF -maatregelpakket 1 toepassen - OF - maatregelpakket 2 toepassen-

Hoe maak ik dat ?
 
Zolang je met Javascript werkt kan dit op één pagina. Maargoed, ik heb geen tijd om het nu te schrijven. Als je code hebt kan ik je er wel mee helpen, of misschien dat iemand anders het voor je wilt schrijven. Maar je hebt dus maar één pagina nodig als je met Javascript werkt. :thumb:
 
Wanneer de hoogte altijd een natuurlijk getal is tussen 0 en 5. Dus de verzameling: {1,2,3,4 } zou je gebruik kunnen maken van een select-box. Dit is voor de gebruiker makkelijker en duidelijker en bij het programmeren ook.
Dan is het voor de gebruiker ook gelijk duidelijk dat er geen andere mogelijkheden zijn dan 1 t/m 4 en is er geen foutmelding nodig.

Van wat ik begrijp zou een gebruiker niet altijd begrijpen wat voor waarde er ingevuld kan worden maar jij weet dat wel. Waarom dan niet gelijk uitleggen wat de bedoeling is?


Bijvoorbeeld:

Wij leveren advies bij hoogtes vanaf 1 tot 4. Als uw hoogte tot deze categorie behoort, kunt u hier advies aanvragen door hieronder een hoogte te selecteren en op advies te drukken.

hoogte: [selectbox [v]] [knop: ADVIES AANVRAGEN]
 
Wanneer de hoogte altijd een natuurlijk getal is tussen 0 en 5. Dus de verzameling: {1,2,3,4 } zou je gebruik kunnen maken van een select-box. Dit is voor de gebruiker makkelijker en duidelijker en bij het programmeren ook.
Dan is het voor de gebruiker ook gelijk duidelijk dat er geen andere mogelijkheden zijn dan 1 t/m 4 en is er geen foutmelding nodig.

Van wat ik begrijp zou een gebruiker niet altijd begrijpen wat voor waarde er ingevuld kan worden maar jij weet dat wel. Waarom dan niet gelijk uitleggen wat de bedoeling is?


Bijvoorbeeld:

Wij leveren advies bij hoogtes vanaf 1 tot 4. Als uw hoogte tot deze categorie behoort, kunt u hier advies aanvragen door hieronder een hoogte te selecteren en op advies te drukken.

hoogte: [selectbox [v]] [knop: ADVIES AANVRAGEN]

:D:D
Beste JP Romijn,

Dank voor de reactie; de hoogte (in dit geval van een gebouw) is volledig variabel binnen grenzen (max. 15). Het mooiste zou zijn als de gebruiker bij invoer van bij. 16 meteen een foutmelding krijgt.

gr JP
 
Zolang je met Javascript werkt kan dit op één pagina. Maargoed, ik heb geen tijd om het nu te schrijven. Als je code hebt kan ik je er wel mee helpen, of misschien dat iemand anders het voor je wilt schrijven. Maar je hebt dus maar één pagina nodig als je met Javascript werkt. :thumb:


Beste Glest,

Hier komt de javascript code; het stuk van de controle van de invoer is eruit. Het gaat er nu alleen om dat javascript een nieuwe pagina opent (TEST2.html) met, afhankelijk van de invoer, een tekst.
HTML:
<HTML>
<HEAD>
<TITLE>Kleiner dan 1000m2</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function advies() {
if (document.eishoofddraagconstructie.hoogte.value > 5)
	[COLOR="yellowgreen"]location.href = 'TEST2.html'[/COLOR]
	[COLOR="Red"]document.write("De eis voor de hoofddraagconstructie is 60 minuten want H > 5 [I]Hij schrijft deze tekst niet ....[/I][/COLOR]")
else 
	[COLOR="YellowGreen"]location.href = 'TEST2.html'[/COLOR]
	[COLOR="red"]document.write("De eis voor de hoofddraagconstructie is 0 minuten want H < 5[/COLOR]")
}; 
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME=eishoofddraagconstructie>
<TABLE WIDTH="450" BORDER="0">
    <TD WIDTH="250">
	  Hoogte H hoogste verblijfsvloer</TD>
	  <TD WIDTH="200"><INPUT MAXLENGTH="5" TYPE="text" NAME="hoogte" VALUE =" " SIZE="4">[m]</TD>
</TABLE>
<TABLE WIDTH="500" BORDER="0">
	<INPUT TYPE="button" VALUE="Bereken" onClick = "advies()">&nbsp;</TD>
</TABLE>
</FORM>
</BODY>
</HTML>
 
Laatst bewerkt door een moderator:
:D:D
Beste JP Romijn,

Dank voor de reactie; de hoogte (in dit geval van een gebouw) is volledig variabel binnen grenzen (max. 15). Het mooiste zou zijn als de gebruiker bij invoer van bij. 16 meteen een foutmelding krijgt.

gr JP

Oke, maar gaat het om een verzameling van natuurlijke getallen? In welke eenheid werk je? De reeks 1-15 kan volgens mij nog best in een drop-down en in dat geval hoef je nog steeds geen validatie uit te voeren, de gebruiker kan namelijk geen verkeerde input geven. Dan kan je gelijk, wanneer de gebruiker een keuze maakt, het bijbehorende advies geven.


PS.
Je hebt gelijk dat je in eerste instantie met twee pagina's werkt want een dergelijke belangrijke functie voor je website moet zonder javascript kunnen werken. Je zal in eerste instantie gebruik moeten maken van een serverscript (bijv. PHP) om de input te valideren en een advies te berekenen en teruggeven.

Daarna kan je echter javascript deze manier laten blokkeren en zelf uit laten voeren (Javascript kan namelijk alleen blokkeren als het is ingeschakeld en dan is het niet meer nodig om een nieuwe pagina in te laden).
 
Laatst bewerkt:
Ik zou iets als dit doen. Dan heb je ook maar één pagina nodig. Inderdaad, als het belangrijk is moet het ook met PHP werken zoals JP zegt maar in puur javascript kan het zo. ALs je toch een PHP oplossing hebt kun je in ieder geval dit script gebruiken als alternatief voor als Javascript aan staat.

HTML:
<html>
<head>
<title>Doe maar iets</title>

<script type="text/javascript">
function advies()
{
  var h = document.getElementById("text_hoogte").value;
  var advies = document.getElementById("div_advies");
  if (h <= 0 || h > 15)
  {
    advies.style.color = "#FF0000";
    advies.innerHTML = "De hoogte die u heeft opgegeven moet tussen hoger zijn dan 0 en mag maximaal 15 zijn.";
  }
  else if (h > 5)
  {
    advies.style.color = "#000000";
    advies.innerHTML = "De eis voor de hoofddraagconstructie is 60 minuten want de hoogte van de hoogste verblijfsvloer is hoger dan 5.";
  }
  else
  {
    advies.style.color = "#000000";
    advies.innerHTML = "De eis voor de hoofddraagconstructie is 0 minuten want de hoogte van de hoogste verblijfsvloer is 5 of lager";
  }
}
</script>

</head>

<body>
<p>
<span>Hoogte hoogste verblijfsvloer in meters(?):</span>
<input type="text" id="text_hoogte" value="" /><br />
<input type="button" value="Geef advies" onclick="advies()" />
</p>

<div id="div_advies"></div>

</table>
</body>

</html>

De fout in jouw script is dat je éérst een nieuwe pagina opent in hetzelfde venster door window.location.href te veranderen en daarnaa vanuit de oude pagina probeert op de nieuwe pagina te schrijven. Maar op dat moment is die pagina al weg en kan dus niks meer schrijven. document.write kan zoiezo eigenlijk niet meer gebruikt worden als een pagina geladen is omdat je buiten de <html> tags zou schrijven.
 
Laatst bewerkt:
beste Glest,

Ok, ik begrijp het. Hij deed al raar met het document.write commando. thnx:thumb:

gr JP
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan