mehrere checkboxen mit "and" abfragen

So und damit du mit vollem Bauch was zu lesen hast. Der Fehler warum mit mehreren Checkboxen falsch gerechnet wird hat auch eine andere Ursache:

PHP:
$gesamtkosten = $_POST['zeile1'];

if(isset($_POST["zeile21"])) $gesamtkosten = $gesamtkosten + $zeile2;

if(isset($_POST["zeile31"])) $gesamtkosten = $gesamtkosten + $zeile3;

if(isset($_POST["zeile41"])) $gesamtkosten = $gesamtkosten + $zeile4;

if(isset($_POST["zeile51"])) $gesamtkosten = $gesamtkosten + $zeile5;

So sollte es auch klappen, ist aber ungetestet!

"Zeile1" wird immer übertragen und deshalb an die Variable "Gesamtkosten" übergeben. Dann wird geprüft wleche der Optionen ausgewählt wurden und dies dann auch einfach noch dazu gezählt. Du hast es bei dir immer wieder überschrieben!
 
Hallo Thomas
mit dem Formular, das hast du falsch verstanden.
ich fülle z.B. die ersten 5 Formularfelder aus
dann kommt die rechnerei (und die sollte sofort rechnen ohne das Formular zu verlassen bzw. abschicken)
danach kommen weitere Formularfelder.

wenn ich, so wie es momentan ist, die Berechnung starten möchte, kommen sämtliche Fehlermeldungen des Formulars was noch nicht ausgefüllt ist.

Wenn ich alles ausfülle dann kann ich das Formular absenden und erst dann wird berechnet.

Deshalb soll vorher berechnet werden,
dann den rest des Formulars ausfüllen
abschicken.

So und die rechnerei kann man vermutlich nur mit javascript machen. (ich leider nicht :mad: und das ärgert mich schon einwenig)

Hallo Thomas,
ich glaube ich bringe das selber hin,
hab was ähnliches gefunden das ich verwenden kann.
Das Rechnen mit den $gesamtkosten funktioniert auch da hätte ich auch selber darauf kommen können, denn in der S7 programmierung ist es auch so :)

mfg
Rainer

Hallo
bin am verzweifeln
zum lernen möchte ich nur mit Javascript die 4 Grundrechenarten testen
es funktioniert - * / aber wenn ich + schreibe werden nur die beiden Variablen angezeigt ohne zu rechnen !!


Code:
<script language="javascript">

function test(){

var cb1=document.kosten.cb1.value
var cb2=document.kosten.cb2.value
var cb3=document.kosten.cb3.value
var cb4=document.kosten.cb4.value
var hallo=document.kosten.hallo.value

if (document.kosten.cb2.checked == true) {
 var erg =  cb1 * cb2 ;  // es funktioniert - / *      aber + geht nicht********?
}

else {
var erg = 0 ;
}


window.document.kosten.hallo.value=erg;

}

</script>


HTML:
<form name="kosten">

<table width="100%" border="1" cellpadding="1" cellspacing="1">
  <tr>
    <th colspan="3" scope="col"><span class="Stil8">Preise sind pro Monat ohne MwSt.</span></th>
    <th colspan="2" scope="col"><div align="left" class="Stil8">Optionen zubuchbar</div></th>
    </tr>
  <tr>
    <td>Grundgebühren:</td>
    <td>3,50 €</td>
    <td><input type="checkbox" name="cb1" value="3.50" onClick="javascript:test()" ></td>
    <td colspan="2">&nbsp;</td>
    </tr>
  <tr>
    <td>Bild von Lokal:</td>
    <td>2,50 €</td>
    <td><input type="checkbox" name="cb2" value="2.50"  onClick="javascript:test()"></td>
    <td colspan="2">Bild an <a href="mailto:info@resbar.de">info@resbar.de</a> schicken</td>
    </tr>
  <tr>
    <td>Hompage Link:</td>
    <td>0,50 €</td>
    <td><input type="checkbox" name="cb3" value="0.50" onClick="javascript:test()"></td>
    <td colspan="2" rowspan="6">&nbsp;</td>
    </tr>
  <tr>
    <td>Werbung:</td>
    <td>4,50 €</td>
    <td><input type="checkbox" name="cb4" value="4.50" onClick="javascript:test()"></td>
    </tr>
  <tr>
    <td>Kosten pro Monat</td>
    <td><input type="text" name="anzeigen"  size="5" ></td>
    <td>&nbsp;</td>
    </tr>
  <tr>
    <td>MwSt.:</td>
    <td><input type="text" name="hallo"  size="5" ></td>
    <td>&nbsp;</td>
    </tr>
  <tr>
    <td>Gesamtkosten inkl.</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
  <tr>
    <td>Jahresgebühren inkl.</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
</table>
</form>


Danke
Gruß
Rainer
 
Das gemeine an Javascript ist das man mit "+" sowohl rechnen kann als auch Texte verketten kann.

Javascript:
alert("Hallo" + " " + "Rainer");
// Hallo Rainer
alert(1 + 2);
// 3

Deine Werte werden nicht als Zahlen sondern als Textfolge genommen und deshalb verkettet. Du musst sie vorher wieder in Zahlen umwandeln.

Das hier zeigt den Unterschied:

Javascript:
text1 = "123";
text2 = "321";

alert(text1 + text2);
alert(parseInt(text1) + parseInt(text2));

parseInt ist für Zahlen von Typ Integer (Ganzzahlen) es gibt auch noch parseFloat für Zahlen mit Nachkommastellen!
 
Zuletzt bearbeitet:
Hallo Thomas
Danke funktioniert natürlich
Du bist mein Held :D

Beim google findest du jeden sch..... aber das + auch zur addition von Texten gehört sagt dir niemand

gute Nacht
Gruß
Rainer

Hallo schon wieder hänge ich fest
wie muß der code in javascript lauten, wenn ich 2 oder mehrere checkboxen abfragen möchte.
so sieht meine testseite aus


Code:
<script language="javascript">

function test(){

var cb1=document.kosten.cb1.value
var cb2=document.kosten.cb2.value
var cb3=document.kosten.cb3.value
var cb4=document.kosten.cb4.value
var hallo=document.kosten.hallo.value

if (document.kosten.cb2.checked == true) // so funktioniert es mit einer Box
{
 var erg = (parseFloat(cb1) + parseFloat(cb2) ) ; 
}
else
{
var erg = cb1;
}
window.document.kosten.hallo.value=erg

}

</script>

if (document.kosten.cb2  &&  document.kosten.cb3.checked == true)  //alle folgenden funktionieren nicht
if ((document.kosten.cb2  &&  document.kosten.cb3).checked == true) // das funktioniert fast aber wenn nur cb3 = true rechnet er auch



HTML:
<form name="kosten">

<table width="100%" border="1" cellpadding="1" cellspacing="1">
  <tr>
    <th colspan="3" scope="col"><span class="Stil8">Preise sind pro Monat ohne MwSt.</span></th>
    <th colspan="2" scope="col"><div align="left" class="Stil8">Optionen zubuchbar</div></th>
    </tr>
  <tr>
    <td>Grundgebühren:</td>
    <td>3,50 €</td>
    <td><input type="checkbox" name="cb1" value="3.50"  onClick="javascript:test()"></td>
    <td colspan="2">&nbsp;</td>
    </tr>
  <tr>
    <td>Preis 1</td>
    <td>2,50 €</td>
    <td><input type="checkbox" name="cb2" value="2.50"  onClick="javascript:test()"></td>
    <td colspan="2">Bild an <a href="mailto:info@resbar.de">info@resbar.de</a> schicken</td>
    </tr>
  <tr>
    <td>Preis 2</td>
    <td>0,50 €</td>
    <td><input type="checkbox" name="cb3" value="0.50" onClick="javascript:test()"></td>
    <td colspan="2" rowspan="6">&nbsp;</td>
    </tr>
  <tr>
    <td>Preis 3</td>
    <td>4,50 €</td>
    <td><input type="checkbox" name="cb4" value="4.50" onClick="javascript:test()"></td>
    </tr>
  <tr>
    <td>Kosten pro Monat</td>
    <td><input type="text" name="anzeigen"  size="5" ></td>
    <td>&nbsp;</td>
    </tr>
  <tr>
    <td>MwSt.:</td>
    <td><input type="text" name="hallo"  size="5" ></td>
    <td>&nbsp;</td>
    </tr>
  <tr>
    <td>Gesamtkosten inkl.</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
  <tr>
    <td>Jahresgebühren inkl.</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
</table>
</form>


kann man das ganze nicht in eine WHILE Schleife packen und alles was ein Häkchen hat wird addiert und wenn kein Häkchen gesetzt ist wird nur cb1 ausgegeben.
Oder muß ich alle seperat abfragen d.h. 3hoch 2 = 8 Abfragen erstellen (weil cb1 immer angewählt sein wird)

Gruß
Rainer
 
Hallo
2 hoch 3 binär = 8 hatte mich oben vertippt
2x2x2 =8 ;)

ja ich bin mit javascript überhaupt nicht bewandert und muß mir Beispiele von google suchen aber meistens passen die nicht mal im Ansatz
 
http://api.jquery.com/checked-selector/

Sich in jquery einzuarbeiten kann nicht schaden, abgesehen davon finde ich es auch deutlich (!) eifnacher als direkt mit javascript zu arbeiten.

Was dir dann vielleicht auch noch helfen kann: http://api.jquery.com/each/

Schreib dir eifnach ne Funktion updatePrice(), die sollte aüber alle checked Checkboxen iterieren (siehe Link 1) und die Values zusammenzählen. Finito!
 
Zuletzt bearbeitet:
Ich muss aber die rechnerei in Javascript machen, weil die Berechnung vor dem Absenden des Formulars erledigt sein muß

kannst du mir mit der WHILE Schleife helfen?
 
Hallo alxy,
Danke für Deine tolle Hilfe, auf dem Link funktioniert es so wie ich es wollte aber wenn ich es auf meine Seite kopiere, dann funktioniert es nicht,
Wenn ich die Seite "untersuchen lasse bekomme ich folgende Meldung:
[09:48:59.368] ReferenceError: $ is not defined @

Dann hätte ich noch eine Frage:
die kleine rechnerei soll in einem Formular integriert werden wo auch noch andere checkboxen sind,
müssen dann die 4 chechboxen mit namen="xy"[] angesprochen werden?

mfg
Rainer
 
Zurück