Toon posts:

Automatish optellen form

Pagina: 1
Acties:
  • 105 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb een form gemaakt voor onze werknemers waar ze kunnen invullen van maandag t/m vrijdag van hoelaat tot hoelaat ze gewerkt hebben. In dat zelfde schema kan je invullen hoeveel overuren er gemaakt zijn per dag. Vervolgens is er onderaan een vakje waar het totaal overuren in moet komen te staan. Nou is de vraag hoe kan ik ervoor zorgen dat het totaal automatish opgetelt word zonder op een button te klikken?

Het is de bedoeling dat als het ingevult is de werknemers gelijk hun totaal aantal overuren zien van de hele week en de gegevens verzonden kunnen worden.

even voor de duidelijkheid het bestand is asp.

Verwijderd

Dat zul je met Javascript op moeten lossen, in combinatie met het afvangen van een onKeyUp-event. Zie o.a. de MSDN website van Microsoft voor details, en ik gok dat je draadje verplaatst wordt naar de buren.. succes.

code:
1
<input type="text" onKeyUp="zelf_gemaakte_js_functie(this.value)">

[ Voor 17% gewijzigd door Verwijderd op 04-01-2005 15:51 ]


Verwijderd

Topicstarter
Verwijderd schreef op dinsdag 04 januari 2005 @ 15:50:
Dat zul je met Javascript op moeten lossen, in combinatie met het afvangen van een onKeyUp-event. Zie o.a. de MSDN website van Microsoft voor details, en ik gok dat je draadje verplaatst wordt naar de buren.. succes.

code:
1
<input type="text" onKeyUp="zelf_gemaakte_js_functie(this.value)">
Ik heb al op javascript gezocht maar het lastige ervan is het automatish berekenen :?
moeilijk te vinden ben er al lang mee bezig vandaar deze post

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 02-04 08:34

sopsop

[v] [;,,;] [v]

Er staat al een grote hint in de reactie die je quote.
Na iedere toetsaanslag wordt er een functie aangeroepen, die functie rekent vervolgens het hele formulier door en zet de waarde in een veld.

En dit is iig geen webscripting of programming.

Verwijderd

PHP:
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
<script language="Javascript">
//<!--

function count_values(obj, objValue)
{

    var reg = new RegExp("^[0-9]+$");
    
    // init
    // waarde van obj als string
    str = String(objValue);
    
    // invoer check
    if(!reg.test(objValue))
    {

        obj.value = '';
        obj.value = str.substring(0, (str.length-1));

    }

    // alles optellen
    document.all['totaal'].value = Number(document.all['getal_een'].value) + Number(document.all['getal_twee'].value);

}

//-->
</script>

<form id="formulier">
<p>
Getal 1:<br>
<input type="text" id="getal_een" onKeyUp="count_values(this, this.value)">
</p>

<p>
Getal 2:<br>
<input type="text" id="getal_twee" onKeyUp="count_values(this, this.value)">
</p>

<p>
Totaal:<br>
<input type="text" id="totaal" value="0" DISABLED>
</p>
</form>


Hap. Slik. Weg.

Verwijderd

Topicstarter
boppert schreef op dinsdag 04 januari 2005 @ 16:11:
Er staat al een grote hint in de reactie die je quote.
Na iedere toetsaanslag wordt er een functie aangeroepen, die functie rekent vervolgens het hele formulier door en zet de waarde in een veld.

En dit is iig geen webscripting of programming.
idd sorry i see heb het verkeerd gepost 8)7 en ivy bedankt ga het proberen

Verwijderd

Topicstarter
trouwens kan je php wel combineren met asp ? ben nog niet zo pro :+
en al helemaal niet thuis in php.

[ Voor 21% gewijzigd door Verwijderd op 04-01-2005 16:19 ]


  • Denker
  • Registratie: Maart 2003
  • Laatst online: 02-04 15:05
Verwijderd schreef op dinsdag 04 januari 2005 @ 16:17:
trouwens kan je php wel combineren met asp ? ben nog niet zo pro :+
en al helemaal niet thuis in php.
ASP draait op Microsoft servers, PHP op Apache. Het kan wel, maar dan heel ingewikkeld.
Makkelijkst is om alles hetzelfde te houden.

Verwijderd

Topicstarter
Denker schreef op dinsdag 04 januari 2005 @ 16:23:
[...]

ASP draait op Microsoft servers, PHP op Apache. Het kan wel, maar dan heel ingewikkeld.
Makkelijkst is om alles hetzelfde te houden.
Het is me gelukt in php ook al heb ik nog nooit php geschreven ( hulp van ivy )
hoefte alleen een fout eruit te halen 8) volgens mij met opzet laat mij ook maar is zien hoe het werkt :P

aangezien ik geen php kan schrijven en het formulier al in asp is gemaakt zou ik dit kleine stukje php in het asp formulier willen toevoegen dan is nu de vraag hoe moet dit ?
heb apache en Microsoft server tot mijn beschrikking dus.

  • Obliterator
  • Registratie: November 2000
  • Laatst online: 30-03 13:50
De code van ivy is geen PHP (de tags staan er wel...) maar Javascript. Laat dit door je ASP genereren, en je bent klaar.

Wat je wilt kan alleen maar clientside, anders moet je altijd ergens op een knop drukken om de getallen naar de server te sturen. Dus alles wat je bedenkt in PHP of ASP kan gewoon niet zonder knoppen drukken.

[ Voor 48% gewijzigd door Obliterator op 04-01-2005 16:36 ]


  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

Dat stuk van ivy lijkt me gewoon js hoor, en geen php :) .

DM!


Verwijderd

Topicstarter
Obliterator schreef op dinsdag 04 januari 2005 @ 16:33:
De code van ivy is geen PHP (de tags staan er wel...) maar Javascript. Laat dit door je ASP genereren, en je bent klaar.

Wat je wilt kan alleen maar clientside, anders moet je altijd ergens op een knop drukken om de getallen naar de server te sturen. Dus alles wat je bedenkt in PHP of ASP kan gewoon niet zonder knoppen drukken.
Maar het lukt me nu toch ? het is een form voor op het intranet

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Denker schreef op dinsdag 04 januari 2005 @ 16:23:
ASP draait op Microsoft servers, PHP op Apache.
Oh :? Wij draaien al tijden PHP en ASP op dezelfde IIS-webserver hoor :P

[/muggenzift]

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Verwijderd

Topicstarter
Jaja het lukt niet helemaal ik krijg niet meer als 2 textfields die getelt worden dan houd het op
heb ze wel allemaal unieke naam gegeven getal_een getal_twee ga zo maar door..
tot 12 *hint* :P wat doe ik fout ?

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
<script language="Javascript"> 
//<!-- 

function count_values(obj, objValue) 
{ 

    var reg = new RegExp("^[0-9]+$"); 
     
    // init 
    // waarde van obj als string 
    str = String(objValue); 
     
    // invoer check 
    if(!reg.test(objValue)) 
    { 

        obj.value = ''; 
        obj.value = str.substring(0, (str.length-1)); 

    } 

    // alles optellen 
    document.all['totaal'].value = Number(document.all['getal_een'].value) + Number(document.all['getal_twee'].value); 
    document.all['totaal'].value = Number(document.all['getal_drie'].value) + Number(document.all['getal_vier'].value);
    document.all['totaal'].value = Number(document.all['getal_vijf'].value) + Number(document.all['getal_zes'].value); 
    document.all['totaal'].value = Number(document.all['getal_zeven'].value) + Number(document.all['getal_acht'].value); 
    document.all['totaal'].value = Number(document.all['getal_negen'].value) + Number(document.all['getal_tien'].value);  
    document.all['totaal'].value = Number(document.all['getal_elf'].value) + Number(document.all['getal_twaalf'].value); 
} 

//--> 
</script>


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
<form id="formulier"> 
<p> 
Getal 1:<br> 
<input type="text" id="getal_een" onKeyUp="count_values(this, this.value)"> 
</p> 

<p> 
Getal 2:<br> 
<input type="text" id="getal_twee" onKeyUp="count_values(this, this.value)"> 
</p> 

<p> 
Getal 3:<br> 
<input type="text" id="getal_drie" onKeyUp="count_values(this, this.value)"> 
</p> 

<p> 
Getal 4:<br> 
<input type="text" id="getal_vier" onKeyUp="count_values(this, this.value)"> 
</p> 

<p> 
Totaal:<br> 
<input type="text" id="totaal" value="0" DISABLED> 
</p> 
</form>


doe ik wat fout ? :D

[ Voor 117% gewijzigd door Verwijderd op 04-01-2005 17:25 ]


  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 02-04 08:34

sopsop

[v] [;,,;] [v]

Dit moet zo:
HTML:
1
2
3
4
5
6
    document.all['totaal'].value = Number(document.all['getal_een'].value) + Number(document.all['getal_twee'].value); 
    document.all['totaal'].value += Number(document.all['getal_drie'].value) + Number(document.all['getal_vier'].value);
    document.all['totaal'].value += Number(document.all['getal_vijf'].value) + Number(document.all['getal_zes'].value); 
    document.all['totaal'].value += Number(document.all['getal_zeven'].value) + Number(document.all['getal_acht'].value); 
    document.all['totaal'].value += Number(document.all['getal_negen'].value) + Number(document.all['getal_tien'].value);  
    document.all['totaal'].value += Number(document.all['getal_elf'].value) + Number(document.all['getal_twaalf'].value);

Je overschrijft document.all['totaal'].value iedere keer weer, met += tel je de waarden achter de += op bij de waarde voor de +=

Verder zie ik niet alle formfields terugkomen in je onderste lap code. Die gaat maar tot getal_vier.

Tot slot de tip van de dag: leer eerst het verschil tussen serverside scripten, clientside scripten en HTML. Werk vervolgens wat tutorials door over het DOM (document object model) i.c.m. (clientside)javascript. Dan moet je een heel eind komen, want dit is vrij basic stuff.

[ Voor 10% gewijzigd door sopsop op 04-01-2005 17:51 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:00

gorgi_19

Kruimeltjes zijn weer op :9

En met bovenstaande hints moet je er verder wel zelf uit kunnen komen :) Voro de volgende keer: Zie P&W FAQ - De "quickstart" voor de eisen die we stellen aan een topic, qua inhoud en titel.

Verder horen clientside topics in Webdesign & Graphics :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1

Dit topic is gesloten.