Wie kann ich Summen von verschiedenen Checkboxen berechnen?

  1. Erstellen Sie ein Quickmode Formular
  2. Erstellen Sie für dieses Tutorial 7 verschiedene Checkboxen

    1. Vergeben Sie beliebige Titel an die Checkboxen. Versuchen Sie die Namen generell einfach zu halten da diese in den Berechnungsscripten immer wieder gebraucht werden. In diesem Beispiel hier haben wir folgende Namen benutzt d11, d12, d13, d14, d16, d18 und d1o (im letzten Namen handelt es sich um den klein Buchstaben o  und nicht um die Nummer 0).
    2. Als Inhalt geben Sie nun die gewünschten Werte an die berechnet werden sollen. Bitte beachten Sie das die Dezimalstellen hier mit einem Punkt getrennt werden müssen und nicht wie im deutschen üblich mit einem Komma. Die Werte in diesem Beispiel sind 35.00, 35.00, 35.00, 35.00, 45.00, 55.00, und 70.00.
    3. Öffnen Sie nun eine Checkbox nach der anderen und erstellen den Jeweiligen Actionscript Event. Dazu gehen Sie in den "Erweiter" Tab Ihrer Checkbox -> Actionscript-> Custom  und als Aktion wählen Sie "click", und kopieren folgenden Code in das Fenster:

      function ff_d11_action(element,action)
      {
           ff_amountowing_action(element,action);
      }

       
      Bitte stellen Sie sicher das der Name der Funktion der jeweiligen Checkbox entspricht, also für d11 wie obiger Code und für d12:

      function ff_d12_action(element,action)
      {
           ff_amountowing_action(element,action);
      } 
      

       
      und so weiter.

      Denken Sie daran nach jeder Checkbox zu speichern bevor Sie zur nächsten wechseln.

  1.  
    1. Erstellen Sie nun ein Textfeld mit dem Namen "amountowing" und dem Inhalt 0.
    2. In dem erweitert Tab des Textfelds schalten Sie dann "nur lesend" ein so dass der berechnete Wert nicht mehr geändert werden kann. Im Actionscript Bereich des Textelements wälen Sie dann wieder "custom" aus (eine besondere Aktion ist hier nicht erforderlich).
    3. In das Fenster kopieren Sie nun folgenden Code:

      function ff_amountowing_action(element,action)
      {
           ff_getElementByName('amountowing').value = 0;
           
           if (ff_getElementByName('d11').checked)
           {
                ff_getElementByName('amountowing').value = 
                Number(ff_getElementByName('amountowing').value) + Number(ff_getElementByName('d11').value);
           }
      
           if (ff_getElementByName('d12').checked)
           {
                ff_getElementByName('amountowing').value = 
                Number(ff_getElementByName('amountowing').value) + Number(ff_getElementByName('d12').value);
           }
      
           if (ff_getElementByName('d13').checked)
           {
                ff_getElementByName('amountowing').value = 
                Number(ff_getElementByName('amountowing').value) + Number(ff_getElementByName('d13').value);
           }
      
           if (ff_getElementByName('d14').checked)
           {
                ff_getElementByName('amountowing').value = 
                Number(ff_getElementByName('amountowing').value) + Number(ff_getElementByName('d14').value);
           }
      
           if (ff_getElementByName('d16').checked)
           {
                ff_getElementByName('amountowing').value = 
                Number(ff_getElementByName('amountowing').value) + Number(ff_getElementByName('d16').value);
           }
      
           if (ff_getElementByName('d18').checked)
           {
                ff_getElementByName('amountowing').value = 
                Number(ff_getElementByName('amountowing').value) + Number(ff_getElementByName('d18').value);
           }
      
           if (ff_getElementByName('d1o').checked)
           {
                ff_getElementByName('amountowing').value = 
                Number(ff_getElementByName('amountowing').value) + Number(ff_getElementByName('d1o').value);
           }
      }

       

Jetzt noch das ganze Formular speichern und schon sollte es funktionieren und in amountowing die Jeweilige Summe angezeigt werden. Wenn die Berechnung nicht funktioniert kontrollieren Sie bitte nochmals die Elementnamen.

 

 

 

Thanks to DavidLGCrawford for this solution!

 

 

Angebot

Sommer Special! Alle Mitgliedschaften zum Sonderpreis!

Prio Support, alle Extensions und alle Templates in einem Paket.

Hier geht's zur Bestellung

Crosstec hilft sparen!

Falls Sie neu bei Crosstec sind aber bereits einen Formulargenerator bei einem anderen Hersteller gekauft haben, dann bekommen sie von uns einen Rabatt von 25% auf unsere 1-Jahres und Pro-Mitgliedschaften

Wie Sie an den Rabatt kommen?

Schreiben Sie uns einfach eine kurze Email mit beigelegten Kaufbeleg (z.B. PayPal Quittung) an sales@crosstec.org.

Wir unterstützen die Joomla Community

Crosstec unterstützt weltweit alle offiziellen Joomla! User Groups und Organisatoren von Joomla! Days die bei Joomla.org registriert sind.

Falls das auf dich zutrifft und du eines unserer Produkte brauchst, schreib uns eine kurze Email an info@crosstec.org und du bekommst eine Flatrate-Mitgliedschaft geschenkt!