06. juni 2002 - 09:45Der er
19 kommentarer og 1 løsning
Udregning i javascript
Jeg har nogle ting der skal regnes ud, i henhold til hvor mange penge den enkelte vare koster.
Hvis nu jeg tager to ting som eksempel. Man kan købe en bold og et legehus. Der skal så være en form hvor man kan skrive det antal bolde eller legehuse man ønsker og nederst skal der så være en sammentælling af de varer man har bestilt. Hvordan klares dette lettest? (Der er i alt 10 varer).
Kan det her bruges (du bliver nok nød til at lave nogle flere else if hvis du skal have flere varer. Dette script er blot lavet ud fra dit eksempel): <html> <head> <script language="javascript"> antal = 0; ialt = 0; function udregn(navn,pris) { if (navn == "b") { antal = parseInt(document.form1.bold.value); ialt = antal * pris; } else if (navn == "h") { antal = parseInt(document.form1.hus.value); ialt = antal * pris; } else; document.form1.sum.value = ialt; if (document.form1.sum.value == "NaN") document.form1.sum.value = ""; } </script> </head> <body> <form name="form1"> Bold: <input type="text" name="bold" onKeyUp="udregn('b',12);"><br> Legehus: <input type="text" name="hus" onKeyUp="udregn('h',125);"><br> I Alt: <input type="text" name="sum"> </form> </body> </html>
Jo det ser fint ud men man skal have mulighed for at bestille både bold og hus og så se den samlede pris. Her slettes prisen for de bolde man har tastet ind og erstattes af prisen på legehus når man indtaster disse
Det skal måske også lige nævnes at bestillingen skal sendes til en emailadresse. Leveringssted (Nanv, adresse, by og telefonnummer)skal der derfor også være en form til.
Synes godt om
Slettet bruger
06. juni 2002 - 15:33#8
Designmæssigt er det selvfølgelig noget bæ, men den side af sagen klarer du nok selv:
Du kan jo altid lave lidt andet layout på den, men hvis du vil have flere skal du bare huske at lave en onKeyUp="udregn();" samt lave nogle flere variabler. Fx hvis du vil have produktet laks med, skal du tilføje: <b>Laks:</b><input type="text" name="laks" onKeyUp="udregn();" value=0 onFocus="this.value = '';"><br> og i <script>: var antal3 = 0; var ialt3 = 0; function udregn() { //tilføj følgende: antal3 = parseInt(document.form1.laks.value); if (antal > 0) ialt3 = antal3 * 70; //70 er prisen for laks else ialt3 = 0; // og længere nede: document.form1.sum.value = ialt + ialt2 + ialt3; } Bøvet, men det skulle virke :-)
Hvis det ikke er for sent nu, hvad så med denneher? : ---8<---------- <html> <body> <script language="javascript"> //Disse to arrays er de eneste der skal ajourføres ved nye priser/varer var vareArray=["legehus","badebold","mejetærsker","hitler"]; var prisArray=[259,69,365999,15.95]; </script> <center> <h1>Blabla bla</h1> <table border=0 cellspacing=0 cellpadding=3> <form name="listeForm">
Jeg kunne egentlig godt tænke mig at høre, hvad I (andre?) hajer synes om den! Som jeg ser det, er det en stor fordel at opdateringer af varer og priser udelukkende sker i to linier (burde måske have været lavet i een, så man er sikker på ikke at bytte priser og varer rundt).
Til gengæld er det måske for skrøbeligt udelukkende at overlade sig på form.elements[index] til at finde de rigtige varer og priser frem? Jeg mener: hvis man pludselig skal indsætte et hidden field i starten af formen, skal man huske at opdatere javascriptet (eller huske at tilføje det i slutningen af formen i stedet!)
Alternativt kunne man selvfølgelig lave et navngivent felt lige inden de javascript genererede felter, og så ud fra dens index finde de andre felter :)
He he he - var det ikke 14% af alle webbutikkerne Jakob Nielsen undersøgte for et års tid siden, der havde lavet samme fejl som jeg: Glemt send/køb knappen :)
Der skal selvfølgelig bare tilføjes en <input type=reset value=slet> og en <input type=submit value=køb>-tingy i slutningen af formen.
I øvrigt kiara, så er det nødvendigt med en serverside ting for at sende mails, så det er ikke noget du skruer sammen i javascript. Det er meget sandsynligt at dit webhotel har noget liggende, som du må bruge, men den eksakte syntax for det afhænger af hvordan serverside scriptet er lavet. (-:H@zze
o-zone >> Den ser da meget fin, men når man vælger fx legehus (checkboxen) og så skriver hvor mange der skal være opdateres den ikke. Men ellers ser den fin ud og let at opdatere :)
skovenborg>> hmmm ... det gør den, når du skal sende formen. Jeg bruger onChange til at opdatere, og den fanger først ændringen, når man fjerner sig fra feltet! Men du har da ret - det kunne vildlede kunder til at tro at deres varer kostede mindre :-(
Tusind tak for hjælpen til jer. Jeg har i første omgang brugt din, Skovenborg, men jeg vil da også forsøge mig med din o-zone, på et eller andet tidspunkt. Jo flere ting jeg prøver, jo klogere biver jeg :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.