Toon posts:

Geautomatiseerd formulier met Javascript *

Pagina: 1
Acties:
  • 755 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik ben bezig een website te maken, waarop een vergelijking gemaakt moet worden.
De bezoeker van de site moet een formulier invullen:
met 2 open vragen.
en 2 radiobuttons.
aan de hand van de antwoorden die de bezoeker invult moeten waardes worden gekoppeld.
bij de invulvragen moet wanneer boven de 100 wordt ingevuld, de waarde 0 worden gegeven.
wanneer onder de 100 wordt ingevuld, dan moet aan dit getal een waarde worden gekoppeld, bijvoorbeeld, tussen de 0-35 waarde 1, tussen de 35 en 70 waarde 2 en tussen de waarden 70 en 100 waarde 3.
Waneer de 2 invulvragen en de vragen met radiobuttons (waaraan ook waardes zijn gekoppeld) zijn ingevuld dan moet aan het eind de totaalwaarde worden berekend.
PS. de getallen exact maakt niet precies uit

Ik weet dat het erg ingewikkeld is, maar wie zou mij kunnen helpen?zelf kom ik er echt niet uit!

Groet,
dit heb ik:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<html> 
<head> 
<title>test</title> 
<script language="JavaScript" type="text/javascript"> 
<!-- 
function bereken(form) 
{ 
//Aantal vragen 

var vragen=2; 
var totaal=0; 
for(i=0;i<vragen;i++) 
{ 
eval("veld = form.test"+i); 
for(j=0;j<veld.length;j++) 
{ 
if(veld[j].checked) 
{ 
totaal+=veld[j].value*1; 
} 
} 
} 
if(totaal<35)location.href="test.html" 
else if(totaal<70)location.href="bouwjaar.html" 
} 

//--> 
</script>
<style type="text/css">
<!--
.style2 {
    color: #FF0000;
    font-weight: bold;
    font-size: 18px;
}
-->
</style>
<meta name="generator" content="Namo WebEditor v6.0">
</head> 
<body>
<form METHOD="POST">
  <p><b>1.vraag 1?</b><br/><br/> 
    <input type="radio" name="test0" value="0"> 
    antw 1<br/> 
    <input type="radio" name="test0" value="10"> 
    antw 2<br/>
    <br/> 
    <b>2. Vraag 2?</b><br/><br/> 
    <input type="radio" name="test1" value="10"> A<br/> 
    <input type="radio" name="test1" value="0"> B<br/>
    <br/> 
    <input type="button" value="Ga Verder" onClick="bereken(this.form)"> 
  </p>
</form> 
</body> 
</html>


Alle getallen die genoemd zijn in de afbeelding moeten waardes van een antwoord voorstellen.
Afbeeldingslocatie: http://members.lycos.nl/dongen88/website.jpg

[ Voor 35% gewijzigd door Verwijderd op 05-05-2006 15:18 ]


  • Technicality
  • Registratie: Juni 2004
  • Laatst online: 19-10-2025

Technicality

Vliegt rechtsom...

waarom wil je dit clientside doen (met Javascript)? Een serverside taal als PHP zou dit makkelijker kunnen (zeker ook omdat je wel mensen naar bepaalde pagina's wilt doorsturen).

  • André
  • Registratie: Maart 2002
  • Laatst online: 20-02 09:23

André

Analytics dude

@Technicality: omdat je clientside met javascript snel berekeningen kunt maken?

@Dongen!: wat lukt er niet precies dan, wat gaat er fout, waar kom je niet uit. Je moet niet verwachten dat wij het hele formulier bij elkaar schrijven.
En ik heb je titel wat zinvoller gemaakt dan alleen "formulier" ;)

[ Voor 13% gewijzigd door André op 05-05-2006 15:03 ]


Verwijderd

Topicstarter
het lukt mij niet om aan een invul veld een waarde te koppelen, zoals je ziet zijn er aan de radiobuttons waardes gekoppeld.
Maar ik krijg het niet voor elkaar om dit aan de tekstvelden te doen zoals ik in mij 1e bericht liet zien.
Bedankt voor jullie snelle reactie.
Gr.
Dongen!

  • André
  • Registratie: Maart 2002
  • Laatst online: 20-02 09:23

André

Analytics dude

Hint: met document.forms["formuliernaam"].elements["elementnaam"].value kun je waardes van elementen uitlezen.

Verwijderd

Topicstarter
Ja maar dan moeten er wel waardes aan zitten.
Bedankt!

  • André
  • Registratie: Maart 2002
  • Laatst online: 20-02 09:23

André

Analytics dude

Waaraan? Aan de textboxen?

  • user109731
  • Registratie: Maart 2004
  • Niet online
(Ik weet niet zeker of ik je vraag goed snap)
Je kijkt wat er in de textboxen staat, dit sla je op in een variabele.
Vervolgens maak je een functie geefWaarde() ofzo waaraan je die variabele meegeeft, zodat je netjes de bijbehorende waarde terugkrijgt?

Verwijderd

Topicstarter
Ik wil bijvoorbeeld, "als het mogelijk is":

je hebt 4 vragen.
vraag 1: (radiobuttons)
A = Waarde 10
B = Waarde 0

vraag 2:(radiobuttons)
A = Waarde 10
B = Waarde 0

Vraag 3:
[ Textbox ]

Als je invuld:
tussen 1 en 25: krijg je waarde 10
tussen 25 en 50 krijg je waarde 20
tussen 50 en 75 krijg je waarde 30
tussen 75 en 100 krijg je waard 40
alles daar boven krijg je waarde 0

Vraag 4:
[ textbox ]
onder de 1990 krijgt Waarde 0
Boven de 1990 krijgt waarde 10
boven de "2006" krijgt error.

Dus stel je vult in A, A , 23, 1999 (dit is de minimum waarde die je kan krijgen om het goed te hebben(dus zonder waarde 0 ergens te hebben)
heb je een totaal waarde van: 40 dus word je door gelinkt naar pagina 1.html
Zodra je onder de 40 hebt betekent het dus dat je ergens een waarde 0 hebt gegeven, dan moet je dus naar: afwijzing.html met bijv( Helaas met deze gegevens kunt u dit niet berekenen)
het formulier is eigenlijk een beetje afhankelijk van vraag 3.
uiteindelijk heb je dus 5 pagina's waar naar doorverwezen kan worden:
afwijzing.
als je tussen0 en 25 hebt.(betekent dat je ergens een 0 hebt gegeven, dus fout antwoord)
tussen 25 en 50 (betekent dat je sowieso nergens 0 mag hebben!)
tussen 50 en 75 (betekent dat je sowieso nergens 0 mag hebben!)
tussen 75 en 100 (betekent dat je sowieso nergens 0 mag hebben!)

Alvast heel erg bedankt, snappen jullie het een beetje?
dus meot alleen eiglijk weten hoe je die verdeling kunt maken bij de textboxes.
Groet,
Dongen!

[ Voor 7% gewijzigd door Verwijderd op 05-05-2006 15:49 ]


  • user109731
  • Registratie: Maart 2004
  • Niet online
Je bedoeld dus ongeveer zoiets?
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<html>
    <head>
        <title>Testje</title>
        
        <script type="text/javascript">
            function bereken(form) {
                var totaal = 0;
                totaal += geefWaarde(form.value1.value);
                totaal += geefWaarde(form.value2.value);                
                alert ("totaal: "+totaal);
            }
            function geefWaarde(number) {
                if (number > 0 && number < 35) {
                    return 1;                   
                } else if (number >= 35 && number < 70) {
                    return 2;
                } else if (number >= 70 && number < 100) {
                    return 3;
                } else {
                    return 0;               
                }
            }
        </script>       
    </head>
    <body>
        <form method="post">
            <input name="value1" type="text" value="10">
            <input name="value2" type="text" value="20">
            <input type="button" onClick="bereken(this.form)">
        </form>
    </body>
<html>

[ Voor 20% gewijzigd door user109731 op 05-05-2006 16:02 ]


Verwijderd

Topicstarter
niet helemaal, want 1e bestaat wel uit dat 0/35 & 35/70 etc maar de andere uit < of > dan 1990 (jaartal)
In ieder geval bedankt, kijken of ik het misschien een beetje kan aanpassen!!
M.v.g
Dongen!

Verwijderd

Topicstarter
Kan iemand mij hiermee helpen?

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Nee, het wordt eens tijd dat je zelf maar eens wat meer moeite gaat doen :/

Grote prutser (nou ja zeg :P) heeft je goed op weg geholpen met een voorbeeld, dus is het de bedoeling dat je zelf dat voorbeeld als voorbeeld gebruikt en je eigen probleem probeert op te lossen.

Dit is toch echt basic JS en zou eigenlijk direct op slot moeten gaan, maar ik geef je nog een kans. Probeer eerst met de basics te beginnen, je hebt al je business rules opgeschreven. Ga dan gewoon per business rule bouwen totdat al je functionaliteit erin zit.

Heb je een probleem, dan mag je terugkomen waarbij je duidelijk vermeld waar het precies misgaat. Sinds je topicstart heb ik nl. nog geen letter code gezien :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.

Pagina: 1