Font
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]2234[/thread]

Values mehrerer Checkboxen addieren?

Readers: 14


<< |< 1 2 >| >> 18 entries, 2 pages
guest Gast
 2005-01-25 18:00
#24289 #24289
Hallo,

ich habe folgendes Problem:
Ich habe mehrere Checkboxen, deren Namen "wild" sind. Also weder gleich noch fortlaufend noch sonstwie "logisch".

Alle diese Checkboxen sollen eine Zahl als "value" bekommen. Wird einen dieser boxen checked oder unchecked, soll die Summe aller Values der ge-checked-ten Checkboxen errechnet werden. Die Summe soll dann in einem Textfeld stehen, was aber nicht das Problem ist (DAS bekomme ich auch noch hin :-) alles andere nicht)

Auch die Anzahl der Checkboxen ändert sich, steht aber in einem Hidden mit dem Namen "anzahl".


Wie mache ich das...? Ich habe KEINE Ahnung...

Kann mir da jemand helfen?

Vielen Dank,
Oliver
GwenDragon
 2005-01-25 19:15
#24290 #24290
User since
2005-01-17
13736 articles
Admin1
[Homepage]
user image
Das Modul CGI benutzen.

In der Doku ist ein Abschnitt
CREATING A GROUP OF RELATED CHECKBOXES

Schau mal da nach.

In der Shell/Dos-Box
perldoc CGI
die Drachin, Gwendolyn.


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

pktm
 2005-01-25 19:53
#24291 #24291
User since
2003-08-07
2921 articles
BenutzerIn
[Homepage]
user image
den hidden-parameter kann man übrigens leicht manipulieren.
Eventuell möchtest du sowas wie CGI::Session? (nur wenn passwortgeschützter Bereich)
Ansonsten würde ich dir empfehlen, den Wert irgendwie codiert / chiffriert zu übergeben, damit nicht gleich jeder die Parameterliste verändern kann.
http://www.intergastro-service.de (mein erstes CMS :) )
jemand
 2005-01-25 23:12
#24292 #24292
User since
2004-05-14
231 articles
BenutzerIn
[default_avatar]
habt ihr schonmal daran gedacht dass er vielleicht nur mit javaskript arbeiten will?? sonst wäre es nämlich sinfoller den thread ins perl-cgi unterforum zu stellen und nicht unter html-javaskript.
ich denke es wäre sinnvoller wenn oliver erstmal selbst sagt was er eigentlich machen will, bevor wir hier sinnlos 'use code::verwendungszweck::ratespiel' ...:)
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;
renee
 2005-01-26 10:05
#24293 #24293
User since
2003-08-04
14367 articles
ModeratorIn
[Homepage] [default_avatar]
Eine reine JavaScript-Lösung:
Code: (dl )
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
<html>
<head>
<script type="text/javascript">
function addValues(){
var sum = 0;
for(var i = 0; i < document.forms[0].length; ++i){
if(document.forms[0].elements[i].type == "checkbox" && document.forms[0].elements[i].checked){
sum += (document.forms[0].elements[i].value * 1);
}
}
document.forms[0].ausgabe.value = sum;
}
</script>
</head>
<body>
<form name="test">
<input type="checkbox" value="5" onClick="addValues();">1<br />
<input type="checkbox" value="5" checked onClick="addValues();">2<br />
<input type="checkbox" value="5" checked onClick="addValues();">3<br />
<input type="checkbox" value="5" checked onClick="addValues();">4<br />
<input type="checkbox" value="5" checked onClick="addValues();">5<br />
<input type="checkbox" value="5" checked onClick="addValues();">6<br />
<input type="text" name="ausgabe">
</form>
</body>
</html>
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
guest chris
 2016-01-06 14:46
#183413 #183413
Danke schon einmal für die Einstellung des Script. Würde/könnte jemand zu dem unten aufgeführten Script-Teil eine kurze Erklärung Zeile für Zeile geben? Ich würde das gerne vertsehen.

2005-01-26T09:05:50 renee
Eine reine JavaScript-Lösung:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
  <script type="text/javascript">
function addValues(){
var sum = 0;
for(var i = 0; i < document.forms[0].length; ++i){
if(document.forms[0].elements[i].type == "checkbox" && document.forms[0].elements[i].checked){
sum += (document.forms[0].elements[i].value * 1);
}
}
document.forms[0].ausgabe.value = sum;
}
</script>

Last edited: 2016-01-06 14:53:46 +0100 (CET)
murphy
 2016-01-06 15:04
#183414 #183414
User since
2004-07-19
1775 articles
HausmeisterIn
[Homepage]
user image
Guest chris
[...]
Würde/könnte jemand zu dem unten aufgeführten Script-Teil eine kurze Erklärung Zeile für Zeile geben?
[...]

Klar, der Code ist kein Hexenwerk:
Code (javascript): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  function addValues(){
    // Initialisiere Akkumulator für die Summierung auf Null
    var sum = 0;
    // Durchlaufe Schleife über alle interaktiven Elemente des ersten
    // Formulars (forms[0]) in der Webseite
    for(var i = 0; i < document.forms[0].length; ++i){
      // Wenn das aktuelle Eingabeelement eine Checkbox ist und der Haken gesetzt ist ...
      if(document.forms[0].elements[i].type == "checkbox" && document.forms[0].elements[i].checked){
        // ... dann konvertiere den mit der Checkbox assoziierten Wert in eine Zahl (... * 1)
        // und addiere ihn zum Akkumulator (sum += ...)
        sum += (document.forms[0].elements[i].value * 1);
      }
    }
    // Schreibe die Summe aus dem Akkumulator in das Formularfeld mit dem Namen "ausgabe"
    // im ersten Formular in der Webseite
    document.forms[0].ausgabe.value = sum;
  }
When C++ is your hammer, every problem looks like your thumb.
guest guest
 2016-01-11 15:58
#183472 #183472
Hallo,

1. ich suche nach einer Möglichkeit auch die Values der einzelnen Optionen einer Select Box in die Rechnung aufzunehmen. Leider erscheint bei meinem Versuch bei der Auswahl einer Option immer nur die "0" im Ausgabefeld.

2. Des Weiteren würde ich gerne zu dem jeweiligen Ausgabewert am Schluss immer 19% Mehrwertsteuer hinzuaddieren.

Würde mich sehr freuen, wenn mir jemand weiterhelfen könnte?

Herzlichen Dank im Voraus

Code
Code: (dl )
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
<!DOCTYPE html> 
<head>
<script>
function addValues(){
var sum = 0;
for(var i = 0; i < document.forms[0].length; ++i){
if(document.forms[0].elements[i].type == "radio" && document.forms[0].elements[i].checked){
sum += (document.forms[0].elements[i].value * 1);
}
if(document.forms[0].elements[i].type == "checkbox" && document.forms[0].elements[i].checked){
sum += (document.forms[0].elements[i].value * 1);
}
if(document.forms[0].elements[i].type == "option" && document.forms[0].elements[i].selected){
sum += (document.forms[0].elements[i].value * 1);
}
}
document.forms[0].ausgabe.value = sum;
}
</script>
</head>

<body>
<form name="rechner">
<h3>Feld 1</h3>
<p><input type="radio" name="feld1" value="1" onClick="addValues();">Eins</p>
<p><input type="radio" name="feld1" value="0" checked onClick="addValues();">Kein Wert<br /></p>
<hr>
<h3>Feld 2</h3>
<p><select name="sprachen" onchange="addValues()">
<option value="0">Bitte wählen Sie:</option>
<option value="1">Eins</option>
<option value="2">Zwei</option>
</select> Bitte wählen Sie einen Wert.</p>
<hr>
<h3>Feld 3</h3>
<p><input type="checkbox" name="content" value="1" onClick="addValues();">Eins</p>
<p><input type="checkbox" name="content" value="2" onClick="addValues();">Zwei</p>
<p><input type="checkbox" name="content" value="0" checked onClick="addValues();">Kein Wert</p>
<hr>
<p>Gesamt: <input type="text" id="ausgabe"></p>
</form>
</body>
</html>

Last edited: 2016-01-11 16:02:30 +0100 (CET)
bianca
 2016-01-11 16:55
#183473 #183473
User since
2009-09-13
6452 articles
BenutzerIn

user image
guest janus
 2016-01-11 19:06
#183475 #183475
Die Aufgabenstellung ist praktisch unsinnig. Sie bekäme einen Sinn, wenn die Checkboxen namentlich gruppiert werden.
<< |< 1 2 >| >> 18 entries, 2 pages



View all threads created 2005-01-25 18:00.