• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

2 checkboxen wollen nicht wirklich...

Status
Für weitere Antworten geschlossen.

WEBI

Neues Mitglied
Hallo,

habe folgendes Problem:

Mein Code sieht so aus:

check.php

Code:
<?php
if ($_POST ['pl'] != "")
{
echo "Dein Ergebnis aus der Addition lautet: ". $_POST ['an']+$_POST ['am'];
}
elseif ($_POST ['mi'] != "")
{
echo "Dein Ergebnis aus der Subtraktion lautet: ". $_POST ['an']-$_POST ['am'];
}
elseif ($_POST ['geteilt'] != "")
{
echo "Dein Ergebnis aus der Division lautet: ". $_POST ['an']/$_POST ['am'];
}
elseif ($_POST ['mal'] != "")
{
echo "Dein Ergebnis aus der Multiplikation lautet: ". $_POST ['an']*$_POST ['am'];
}
else
{
echo "Bitte mach bei irgendeinem Kästchen ein Häckchen";
}
?>

check.html

Code:
<html>
<head>
</head>
<body>
<center>
<u>[b]Hier kannst du alles ausrechen:</u>[/b]
<form action="mathe.php" method="post">
<input type="text" size="3" name="an">                                       
<input type="text" size="3" name="am">



Wähle bitte aus ob:


+ <input type="checkbox" name="pl">


- <input type="checkbox" name="mi">


: <input type="checkbox" name="geteilt">


* <input type="checkbox" name="mal"> 



<input type="submit" value="Ergebnis">
</form>
</body>
</html>


Wie ihr seht, ist das ein Taschenrechner, bei dem ich per Kästchenauswahl auswählen kann, welche Funktion er ausführen soll.

Bei mal und geteilt geht es auch, nur bei plus und minus funzt es nicht.

Da schreibt er mir immer das Ergebnis aus dem Textfeld "am".

Bei Plus heißt es: z.B. 12
Bei Minus heißt es: z.B. -12....???

Wieso...???

Bei mal und geteilt geht es ja auch...???

Gruß

WEBI :wink:
 
so du hast oben

geöffnet und nicht mehr geschlossen .... weiß das tut nichts zur sache muss aber gesagt sein...
 
@mysterious wenn du nicht sicher bist dann lass es doch es ist nähmlich falsch ;)

versuch mal ( ) um die operation zu machen, die operanden vorher zu einem integer zu konvertieren und bitte sag mal was die operanden waren wenn 12 btw -12 rauskommt?
 
w7 ich bin bestürzt zu sehen das auch du ein sklave der leibwächter der deutschen sprache bist.
ps: wer sätze mit drei ausrufezeichen schreibt und dann den fehler selber begeht ist nähmlich sehr viel dähmlicher..
 
von niklas:

versuch mal ( ) um die operation zu machen, die operanden vorher zu einem integer zu konvertieren und bitte sag mal was die operanden waren wenn 12 btw -12 rauskommt?

Was heißt den das alles...???


Also eine das mit der Klammer habe ich gemacht:

.... . ($_POST ['an']+$_POST ['am']);


Das funktioniert auch nicht.

Und was du mit diesem Satz meinst weiß ich auch nicht...??

die operanden vorher zu einem integer zu konvertieren und bitte sag mal was die operanden waren wenn 12 btw -12 rauskommt?

Also wenn ich das richtig verstehe, willst du wissen, was ich eingegeben habe, das 12 bei plus rausgekommen ist.

also, im Textfeld "an" war es egal was ich eingegeben habe. Und nur die Zahl was ich im Textfeld "am" reingeschrieben hab, also z.b. 12. Die wurde rausgegeben als: 12 bei plus und als -12 bei minus.....

Vielen Dank nochmal an alle...

Gruß

WEBI :D


PS: Die anderen Lösungen habe ich auch ausprobiert, gehen leider auch nicht.....Aber danke....
 
PHP geht in den Bereich Programmierung, da kann man nicht mal eben so einfach drauf los schreiben wie in HTML, sondern muss sich voher ein gewisses Grundwissen aneignen. :lol:

Operand = Der Wert der mit einem Operator bearbeitet wird (BEISPIEL: 12 + 4; Hier sind die Zahlen 12 und 4 die Operanden)
integer = Ein Datentyp (In diesem Fall eine ganze Zahl. Die maximale Größe hängt von dem vorher definierten Speicherplatz ab und ob es ein Typ mit oder ohne Vorzeichen ist.)

Des weiteren wollte er wissen welche 2 Werte du eingegeben hattest bei "an" und "am" als das Ergebnis 12 bzw. -12 war. Wobei ich das so rauslese, dass der zweite Wert egal war/ist, weil die Funktion immer den "am" Wert ausgibt, egal was in "an" steht.

WEBI schrieb:
Bei mal und geteilt geht es auch, nur bei plus und minus funzt es nicht.

Da schreibt er mir immer das Ergebnis aus dem Textfeld "am".
Das verwirrende an diesem Satz ist die falsche Bezeichnung. Richtig hätte es heißen müssen: Da schreibt er mir immer den Wert aus dem Textfeld "am". Denn in "am" befindet sich ein Wert (Operand) und kein Ergebnis.

Nun gut das Script ist eh "just for fun" denke ich , denn zum reellen Einsatz z.B. auf einer Webseite fehlen da noch viele viele Futures. ;)

Gruß
Hobbyuser
 
Alles klar.

Danke für eure Hilfe.

Jetzt funzt es.

Niklas Lösung mit der Klammer funktioniert.

Vielen Dank nochmal an alle.



Gruß

WEBI :D
 
du solltest den vergleichsoperator nicht mit dem zuweisungsoperator vertauschen.

beispiel für vergleichsoperator:
if ( $money == '0' ) {
echo "ich habe kein geld" }

beispiel für zuweisungsoperator:

$blau = "#000088";
 
hobbyuser er hat schon recht. ne zuweisung liefert true zurück wenn der wert der zuweisung Nicht false oder NULL war. und === ist ein identitätsoperator und hat nichts mit gross/klein schreibung zu tuen.

bsp:

"10" == 10 // TRUE
"10" === 10 // FALSE

der string ist nicht das gleiche wie der integer aber das selbe ;) oder so ähnlich
 
Gut nicklasboelter, ich gebe zu meine Beschreibung war unzureichend, weil ich verschiedene Typen nicht mit angeführt habe.

Jedoch deute ich CrackPods Aussage so dass man statt "==" auch "=" und "===" als Operator nehmen kann und das stimmt so nicht.
Denn "if ($a = $b)" wird ausgeführt sobald $b einen Wert ungleich $false/NULL hat und prüft nicht auf Gleichheit wie "if ($a == $b). Sollte er so gemeint haben wie du es hier beschrieben hat, so hat sich CrackPod zumindest sehr undeutlich ausgedrückt. ;)
 
er hat sich vollkomen richtig ausgedückt. = == und === sind 3 operatoren (zuweisung, gleichheit, identität) die man in ausdrücken benutzen kann ;)

von vergleich auf gleichheit zweier variablen hat er nie geredet
 
bei mir wird aber

if ( $i = $a )

aber als zuweisung gedeutet und nicht als vergleich... also was meint ihr?
 
ja ist es ja auch. es ist aber trotzdem ein ausdruck :)
 
philipp schrieb:
bei mir wird aber

if ( $i = $a )

aber als zuweisung gedeutet und nicht als vergleich... also was meint ihr?
Also was niklasboelter meint ist das du eine einfache Variable an eine if-Abfrage übergeben kannst.
"if ($a)"
Hat $a einen Wert ungleich $false bzw. NULL dann ist das Ergebnis $true und die Anweisungen werden ausgeführt.
Gleiches passiert auch wenn du in der Bedingung eine Zuweisung vornimmst. Das ganze ist etwas Spitzfindig gedacht aber technisch richtig. Deshalb hat niklasboelter auch die Operatoren nochmals benannt.
niklasboelter schrieb:
er hat sich vollkomen richtig ausgedückt. = == und === sind 3 operatoren (zuweisung, gleichheit, identität)...
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben