PDA

Bekijk Volledige Versie : [Javascript] else if probleem



Jon
01/08/03, 20:15
@castleamber.com> wrote in message
news:1059331935.639654@halkan.kabelfoon.nl...
> Jon wrote:
>
> > Met onderstaand scriptje heb ik een probleem:
>
> Lijkt niet echt op Perl?
>
> > Producten van 29,90 tot 74,75 worden keurig met korting getoond, van
149,50
> > en hoger ook.
>
> . is de "kommascheider" in de meeste talen. Dus 29.90 etc. Bedragen niet
> tussen "" zetten.
>
> John
>
> --
> email: mail(at)johnbokma.com (or reply) home: http://johnbokma.com/
> Web site hints: http://johnbokma.com/websitedesign/ ~ ICQ 218175426
>

Terug van een weekje vakantie en het draadje bekeken.
Wat heb ik op gang gebracht....

Het is inderdaad zoals KlinZ al had opgemerkt client-side Javascript. Mijn
excuus voor deze fout
Ik heb de diverse tips van John Bokma geprobeerd, met punten, zonder
komma's, zonder dubbele quotes etc. Het verandert er niets aan..

De opmerking van KlinZ,
"Zeker. Maar dan is "11.0" opeens groter dan "101.0". En dat kan natuurlijk
niet de bedoeling zijn"
zou wel eens de juiste kunnen zijn. Hoe is dit te voorkomen?

Er wordt overigens gewerkt met vaste bedragen, 14,95 per product.
Het is de bedoeling klanten korting te geven bij afname van 2 stuks, 5 stuks
en 10 stuks.
Die vergelijkingen van 2 en 10 stuks werken dus prima, die van 5 stuks
niet...

Als iemand nog een oplossing heeft, graag!

Jon.

KLinZ
02/08/03, 00:45
Jon wrote:

> De opmerking van KlinZ,
> "Zeker. Maar dan is "11.0" opeens groter dan "101.0". En dat kan
> natuurlijk niet de bedoeling zijn"
> zou wel eens de juiste kunnen zijn. Hoe is dit te voorkomen?

Door de quotes weg te laten en ervoor te zorgen dat ST ook een float is
i.p.v. een string.

ST = 50.00;

if (ST >= 29.90 && ST < 74.75) {
document.write("<br></b>U betaalt incl....

Merk ook op dat je dubbele ampersands moet gebruiken i.p.v. een enkele. Een
enkele ampersand gebruik je bij een bitsgewijze vergelijking. Dubbele bij
een logische AND.

Overigens klopt de flow van je code ook niet helemaal. In de else-takken
staat steeds maar 1 statement. Eigenlijk horen er dus accolades om de 2
statements die je steeds wil uitvoeren.

--
www.zenobits.com

KLinZ
02/08/03, 01:00
KLinZ wrote:

> Overigens klopt de flow van je code ook niet helemaal. In de
> else-takken staat steeds maar 1 statement. Eigenlijk horen er dus
> accolades om de 2 statements die je steeds wil uitvoeren.

Zo zou het er uit moeten zien:

if (ST >= 29.90 && ST < 74.75) {
document.write("<br></b>U betaal...
document.write('<input type="hid...
} else if (ST >= 74.75 && ST < 149.50) {
document.write("<br></b>U betaal...
document.write('<input type="hid...
} else if (ST >= 149.50) {
document.write("<br></b>U betaal...
document.write('<input type="hid...
}

Voor de duidelijkheid heb ik de lange regels even afgekapt. Maar het lijkt
me wel duidelijk wat daar moet staan.

--
www.zenobits.com

Jon
02/08/03, 10:45
Bedankt, het werkt nu!

KLinZ
02/08/03, 12:45
Jon wrote:

> Bedankt, het werkt nu!

Nog 2 opmerkingen:

1) Als het bedrag lager is dan 29.90 wordt er niks afgedrukt. Is dat de
bedoeling?

2) Ik hoop niet dat je de hidden input velden gebruikt om de bedragen af te
schrijven. Zo zou de gebruiker namelijk zijn eigen korting kunnen bepalen
:-)

--
www.zenobits.com

Jantje
02/08/03, 13:30
"KLinZ" <klinz@NOSPAMzenobitsSPAMNO.com.invalid> wrote in message
news:2xMWa.20766$KF1.308678@amstwist00...
> Jon wrote:
>
> > Bedankt, het werkt nu!
>
> Nog 2 opmerkingen:
>
> 1) Als het bedrag lager is dan 29.90 wordt er niks afgedrukt. Is dat de
> bedoeling?
>
> 2) Ik hoop niet dat je de hidden input velden gebruikt om de bedragen af
te
> schrijven. Zo zou de gebruiker namelijk zijn eigen korting kunnen bepalen
> :-)
>
> --
> www.zenobits.com
>

1) Klopt.
2) Nee, dit is alleen voor intern gebruik.

Groeten,
Jon