Summen aus 3 txtOut_checkboxen addieren

CreativPur

Erfahrenes Mitglied
Hi,

Ich versuche aus drei verschiedenen radiobox´en bzw. txtOut_checkbox´en eine Gesamtsumme zu addieren.
Das script sieht folgendermaßen aus:



<script type="text/javascript">

preisA = 0
preisB = 0
preisC = 0

// FUNKTION FÜR RADIO Seiten
var objRadioSave = null;

function math_radio(objRadio){
// Falls eine gespeicherte Checkbox existiert
if(objRadioSave != null){
// Subtrahieren
preisA = preisA - Number(objRadioSave.alt);
}

// Addieren
preisA = preisA + Number(objRadio.alt);
// Abgearbeitete Checkbox speichern
objRadioSave = objRadio;

// Neu berechneten Preis in Textfeld ausgeben
document.Bestellung.txtOut_radio.value = preisA
}




// FUNKTION FÜR RADIO Webseiten
var objRadio2Save = null;

function math_radio2(objRadio2){
// Falls eine gespeicherte Checkbox existiert
if(objRadio2Save != null){
// Subtrahieren
preisB = preisB - Number(objRadio2Save.alt);
}

// Addieren
preisB = preisB + Number(objRadio2.alt);
// Abgearbeitete Checkbox speichern
objRadio2Save = objRadio2;

// Neu berechneten Preis in Textfeld ausgeben
document.Bestellung.txtOut_radio2.value = preisB
}



// FUNKTION FÜR Provider

var objRadio3Save = null;

function math_radio3(objRadio3){
// Falls eine gespeicherte Checkbox existiert
if(objRadio3Save != null){
// Subtrahieren
preisC = preisC - Number(objRadio3Save.alt);
}

// Addieren
preisC = preisC + Number(objRadio3.alt);
// Abgearbeitete Checkbox speichern
objRadio3Save = objRadio3;

// Neu berechneten Preis in Textfeld ausgeben
document.Bestellung.txtOut_radio3.value = preisC
}




</script>



Jetzt würde ich gern preisA, preisB und preisC zusammen addieren un in einem neuen

<input name="txtOut_radio4" id="txtOut_radio4" type="text" value="0" size="4" />

erscheinen lassen.


Ich würde mich sehr über eine Hilfestellung freuen.

MfG
CreativPur
 
Hi,

schreib dir eine Funktion, die die Werte aus den Textfeldern ermittelt und addiert. Das Ergebnis gibst du im gewünschten Element aus.

Beispiel:
Code:
function addIt(objSrc){
  document.getElementById("txtOut_radio4").value = ((isNaN(Number(objSrc.form.txtOut_radio1.value)))? 0 : Number(objSrc.form.txtOut_radio1.value)) +
                                                   ((isNaN(Number(objSrc.form.txtOut_radio2.value)))? 0 : Number(objSrc.form.txtOut_radio2.value)) +
                                                   ((isNaN(Number(objSrc.form.txtOut_radio3.value)))? 0 : Number(objSrc.form.txtOut_radio3.value));
}
Ciao
Quaese
 
Hallo Quaese,

danke für deine schnelle Antwort, bzw. Hilfestellung.

Ich habe deine Funktion in mein Script eingebunden. Leider funktioniert es nicht. Zumindest kommt in txtOut_radio4 keine Summe heraus.

Ich schicke Dir mal den Link.. Vielleicht könntest Du ja mal drüber schauen, ob Dir mein Fehler auffällt.

http://www.creativpur.de/BestellungWebseite.html

Ich danke Dir trotz allem

Gruß
Creativpur
 
Hi,

du könntest die Funktion am Ende deiner Funktionen aufrufen und jeweils das als Argument übergebene Objekt weiterreichen.
Code:
function math_radio(objRadio){
  // Falls eine gespeicherte Checkbox existiert
  if(objRadioSave != null){
    // Subtrahieren
    preisA = preisA - Number(objRadioSave.alt);
  }

  // Addieren
  preisA = preisA + Number(objRadio.alt);
  // Abgearbeitete Checkbox speichern
  objRadioSave = objRadio;

  // Neu berechneten Preis in Textfeld ausgeben
  document.Bestellung.txtOut_radio.value = preisA;

  addIt(objRadio);
}
Ciao
Quaese
 
Hi Quaese,

Super... Jetzt funktioniert es. Vielen Dank nochmals..

Wenn ich noch eine Frage stellen dürfte, ohne Dich zu überlasten **** smile

Ich habe auf folgender Seite: http://www.creativpur.de/BestellungFlyer.html

5 Gruppen mir Radio-button.

wenn ich aus jeder Gruppe einen Button anklicke, wäre es super, wenn ich dann den Betrag in einem txtOut_radio.value sehen könnte.

Also: ich klicke aus Gruppe 1 den ersten Button, aus Gruppe 2 den 3 usw.. Beim anklicken eines Button in der letzten Gruppe sollte dann ein bestimmter Wert stehen. den Wert habe ich dann zuvor bestimmt.

Wenn es nicht so dolle schwer ist, würde ich mich über Deine Hilfe nochmals richtig freuen..

Schönes Wochenende..
Gruß Creativpur
 
Hi,

wenn ich dich richtig verstanden habe, möchtest du eine Ausgabe, wenn in jeder Radiogruppe ein Button gewählt wurde.

Erstelle ein Array, das die Namen der zu untersuchenden Radiobuttons aufnimmt.

Im onload-Event werden die radio-Buttons mit einem onclick-Handler ausgestattet. In diesem werden die Radiogruppen durchlaufen. Ist innerhalb einer Gruppe ein Element gewählt, so wird der Ausgabestring ergänzt und eine Zählvariable zum Testen, ob in jeder Gruppe ein Element gewählt wurde, inkrementiert.

Am Ende wird geprüft, ob in jeder Gruppe ein Element gewählt wurde. Im Erfolgsfall wird der generierte String in ein Textfeld geschrieben.

Beispiel:
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
// Array mit Namen der Radiobutton-Gruppen
var arrRadioNames = ["gruppe_01", "gruppe_02", "gruppe_03"];

window.onload = function(){
  var arrInputs = document.getElementById("form_id").getElementsByTagName("input");

  for(var i=0; i<arrInputs.length; i++){
    if(arrInputs[i].type == "radio"){
      arrInputs[i].onclick = function(){
        // Ausgabestring
      	var strOut = "";
        var intChecked = 0;

      	// Radiogruppen durchlaufen
        for(var j=0; j<arrRadioNames.length; j++){
          // Radiobuttons innerhalb einer Gruppe durchlaufen
          for(var k=0; k<this.form.elements[arrRadioNames[j]].length; k++){
            // Falls der Radiobutton gewählt wurde
            if(this.form.elements[arrRadioNames[j]][k].checked){
              strOut += this.form.elements[arrRadioNames[j]][k].value + " | ";
              intChecked++;
              continue;
            }
          }
        }

        // Falls in allen Radiogruppen ein Button gewählt wurde
        if(intChecked == arrRadioNames.length){
          this.form.txtOutput.value = strOut;
        }
      }
    }
  }
}
 //-->
</script>
</head>
<body>
<form action="" method="" id="form_id">
  <fieldset>
    <legend>Gruppe 1</legend>
    <input type="radio" name="gruppe_01" value="g1_1">G1.1<br>
    <input type="radio" name="gruppe_01" value="g1_2">G1.2<br>
    <input type="radio" name="gruppe_01" value="g1_3">G1.3<br>
  </fieldset>
  <fieldset>
    <legend>Gruppe 2</legend>
    <input type="radio" name="gruppe_02" value="g2_1">G2.1<br>
    <input type="radio" name="gruppe_02" value="g2_2">G2.2<br>
    <input type="radio" name="gruppe_02" value="g2_3">G2.3<br>
    <input type="radio" name="gruppe_02" value="g2_4">G2.4<br>
    <input type="radio" name="gruppe_02" value="g2_5">G2.5<br>
  </fieldset>
  <fieldset>
    <legend>Gruppe 3</legend>
    <input type="radio" name="gruppe_03" value="g3_1">G3.1<br>
    <input type="radio" name="gruppe_03" value="g3_2">G3.2<br>
  </fieldset>
  <input type="text" name="txtOutput" id="txtOutput" value=""><br>
  <input type="submit" name="cmdSubmit" value="Senden">
</form>
</body>
</html>
Ciao
Quaese
 
Hi Quaese,
nochmals vielen Dank..

Das script ist super, und ich habe es auch schon wieder übernommen.

Leider habe ich mich falsch ausgedrückt..
In der Tat wollte ich aus den 5 Button-Gruppen eine Einheit bilden, wo ich dann aus einem zweiten txtOutput2 den Betrag für diese Einheit anzeigen möchte.
Also...
wenn ich z.B aus Gruppe1_Butten2, Gruppe2_Button1, Gruppe3_Button 3 usw. anklicke, soll dann ein Preis im 2. txtOutput erscheinen. Die Preise würde ich zuvor eingeben. preis1 = 10, preis2 = 25, preis3 = 15 usw..

kannst es Dir ja nochmals auf meiner Seite ansehen..: http://www.creativpur.de/BestellungFlyer.html

Wenn Du Dir da nochmals Gedanken machen könntest, wäre ich Dir sehr dankbar..
Gern würde ich Dir für Deine Bemühungen auch etwas zukommen lassen..

Lieben Gruß
Hansjörg
 

Neue Beiträge

Zurück