IF-Abfragen

  • Hallo zusammen,

    ich sitze schon eine Weile vor einem Problem und komme nicht weiter.

    Weiß nicht was ich falsch mache.


    Ich habe auf einer Seite ein DropDownMenü.

    Hole mir den ausgewählten Value in die Variable "$SelStatusHS". Das ECHO zeigt mir den gewählten Wert.

    Wenn ich auf die Variable"$SelStatusHS" IF-Abfragen mache, ändert sich der Inhalt der Variablen.

    Alle IF's werden WAHR.

    Am Ende der IF's steht in der Variablen der zuletzt abgefragte Wert.

    Habe mich an anderen Abfragen im Programm orientiert, aber wohl etwas übersehen.

    Kann jemand helfen?


    Danke Harro


    //******************************************************************

    // Status bearbeiten

    $SelStatusHS = JRequest::getVar('SelStatusEingabe','post');


    echo "<BR> (vor IF) SelStatusHS: >" . $SelStatusHS . "< <BR>" ;


    if ($SelStatusHS = "Alles" ){

    echo "gewählt: Alles >". $SelStatusHS. "<<BR>";

    $sQueryBedStatus = " " ;

    }


    if ($SelStatusHS = "inArbeit" ){

    echo "gewählt: inArbeit >". $SelStatusHS. "<<BR>";

    $sQueryBedStatus = " AND BEW in ('ZE','01,'11') AND DATGELIEF is NULL " ;

    }


    if ($SelStatusHS = "erledigt"){

    echo "gewählt: erledigt >". $SelStatusHS. "<<BR>";

    $sQueryBedStatus = " AND BEW in ('03','13') AND DATGELIEF is NOT NULL " ;

    }


    usw ... usw ...


    echo "<BR> (nach IF) SelStatusHS: >" . $SelStatusHS . "<" ; <== jetzt hat die Variable den Inhalt "erledigt" (letztes IF )

    echo "<BR> Bedingung Selektion: >" . $sQueryBedStatus . "<" ;

    //******************************************************************


    Habe die Abfragen auch so probiert, weil ich das an anderer Stelle gesehen habe:

    if ($SelStatusHS = "Alles" && $SelStatusHS != "post") {

  • Du machst einen ganz kleinen aber völlig fatalen Fehler. In Programmiersprachen wird die Gleicheit nicht mit einem einzelnen Gleichzeichen geprüft sondern mit einem doppelten. (In vielen nicht allen)


    Was da steht macht setzt in jeder if Anweisung die Variable auf den Wert und daher erhälst du unten den der letzten if Anweisung. Die werden auch immer ausgeführt, da die Variablenzuweisung geht und true ist. Du müsstest aber if($SelStatusHS == "irgendwas){ machen um auf Gleichheit zu prüfen! Zwei Gleichzeichen! :)

    Btw. Variablen bennent man gemäß Konvention vorne klein!