Archief - javascript : Pagina herschrijven

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

stoffer

Legacy Member
Ik heb een variabele: $totprijs
En een select box voor het transport: binnenland, andere

Nu zou, telkens wanneer de select box gewijzigd wordt de $totprijs ook moeten worden aangepast zodat die telkens juist wordt weergegeven op de pagina (dus niet in een tekstvak ofzo), zonder dat de pagina gerefresht dient te worden.
Is dit mogelijk?
(Ik had gedacht aan 2 layers ofzo en telkens de ene of de andere zichtbaar maken, maar ik heb dat nog nooit gebruikt en heb dus niet echt een idee hoe ik daaraan dien te beginnen)

servi

Legacy Member
de variabele $totprijs zal in ieder geval al niet werken.


dit werkt in ieder geval :

<script language="javascript">

function herbereken() {
trans = document.formulier.transport;
prijs = document.formulier.prijs;
switch (trans.value) {
case "auto" :
prijs.value = 100;
break;
case "trein" :
prijs.value = 150;
break;
case "boot":
prijs.value = 75;
break;
default :
prijs.value = 50;
}
}

</script>
<style>
input#prijs { border-size : 0px; border-style : solid; border-color : white;
font-size : 12pt; font-weight : bold; color : red }
</style>


<form name="formulier">
<select name="transport" onchange="herbereken()">
<option value="auto">auto</option>
<option value="boot">boot</option>
<option value="trein">trein</option>
</select>
<br />
totaalprijs : <input id="prijs" type="text" size="5" name="prijs" onfocus="document.formulier.transport.focus()" />

</form>


Je kan het ook met een textnode doen, maar dit valt te prefereren voor meer compatibliteit.

Voordeel is : bij nieuwere browsers valt het helemaal niet op dat het een tekstveld is.
Bij oudere zie je dit wel, maar werkt deze methode nog steeds, en je kan onmogelijk dat prijs-veld aanpassen.

stoffer

Legacy Member
Nu heb ik dit:

Code:
<?
...
	echo "<br>Totaal te betalen: <input id='prijs' type='text' size='5' name='prijs' onfocus='document.formulier.transport.focus()'>";
	echo "<input type='hidden' name='deprijs' value='$totprijs'>";

	echo "<form method='post' name='formulier'>";

	echo "<br>Levering naar: <select name='transport' onChange='herbereken()'>";
...
?>

<style>
	input#prijs { border-size : 0px; border-style : solid; border-color : white;font-size : 12pt; font-weight : bold; color : red }
</style>
<script language="javascript">
	function herbereken() {
		trans = document.formulier.transport;
		deprijs = document.deprijs;
		prijs = document.prijs;
		alert("Ok");
		
		switch (trans.value) {
			case "België" : prijs.value = deprijs.value + 3;
			case "Andere" : prijs.value = deprijs.value + 5;
			default : prijs.value = deprijs.value + 3;
		}
	}
</script>

Ik krijg enkel "Ok" te zien in mozilla en niet in IE
Maar ik krijg niks te zien bij Totale prijs:
En ik zie mijn fout niet

servi

Legacy Member
case "België" : prijs.value = deprijs.value + 3; break;
case "Andere" : prijs.value = deprijs.value + 5; break;
default : prijs.value = deprijs.value + 3;

stoffer

Legacy Member
servi zei:
case "België" : prijs.value = deprijs.value + 3; break;
case "Andere" : prijs.value = deprijs.value + 5; break;
default : prijs.value = deprijs.value + 3;

Werkt nog steeds niet :confused:

dJeez

Legacy Member
stoffer zei:
Werkt nog steeds niet :confused:

Leer debuggen. Zet eens een alert die nuttig is (ipv "ok") nadat je de waardes hebt opgehaald (deprijs & prijs). Ik zie daar nl. iets staan dat volgens mij totaal niet klopt.

stoffer

Legacy Member
dJeez zei:
Leer debuggen. Zet eens een alert die nuttig is (ipv "ok") nadat je de waardes hebt opgehaald (deprijs & prijs). Ik zie daar nl. iets staan dat volgens mij totaal niet klopt.

Wat dan?
Hij gaf niks van waarde toen ik dat alerte
Ik heb het ondertussen gevonden en de echte fout zat in een stukske code dat ik niet gepost had, dus ik vraag me af wat ge bedoelde

ty Servi

dJeez

Legacy Member
stoffer zei:
Wat dan?
Hij gaf niks van waarde toen ik dat alerte

Dus er moest een waarde zijn en hij gaf er geen terug, conclusie : DAAR zit de fout ergens hé :ironic:.

deprijs kan nooit gekend zijn, tenzij je er nu ineens een ID aan gekoppeld zou hebben. En dan nog is 't een slechte gewoonte, je zou via DOM moeten gaan.

stoffer

Legacy Member
dJeez zei:
Dus er moest een waarde zijn en hij gaf er geen terug, conclusie : DAAR zit de fout hé :ironic:.

nee toch?
En daarmee weet ge direct van baf daar zit de fout? :ironic:
Das toch zo moeilijk om te antwoorden zoals Servi deed

Anyway: close maar voor men weer begint te flamen :s

stoffer

Legacy Member
dJeez zei:
Dus er moest een waarde zijn en hij gaf er geen terug, conclusie : DAAR zit de fout ergens hé :ironic:.

deprijs kan nooit gekend zijn, tenzij je er nu ineens een ID aan gekoppeld zou hebben. En dan nog is 't een slechte gewoonte, je zou via DOM moeten gaan.

Uhm het werkt en er is geen ID gekoppeld aan de prijs ...
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan