glan: if-Abfrage mit radio-button "checked" defekt?

Hallo,
ich kann in diesen Abfragen keine Fehler erkennen, trotzdem wird immer Sonntag selektiert.

$wtag=date("w");
...
if ($wtag = "7")
{
echo "                 <input type="radio" name="tg" value="Montag" checked> Montag\n";
} else {
echo "                 <input type="radio" name="tg" value="Montag"> Montag\n";
}
if ($wtag = "2")
{
echo "                 <input type="radio" name="tg" value="Dienstag" checked> Dienstag\n";
} else {
echo "                 <input type="radio" name="tg" value="Dienstag"> Dienstag\n";
}
if ($wtag = "3")
{
echo "                 <input type="radio" name="tg" value="Mittwoch" checked> Mittwoch\n";
} else {
echo "                 <input type="radio" name="tg" value="Mittwoch"> Mittwoch\n";
}
if ($wtag = "4")
{
echo "                 <input type="radio" name="tg" value="Donnerstag" checked> Donnerstag\n";
} else {
echo "                 <input type="radio" name="tg" value="Donnerstag"> Donnerstag\n";
}
if ($wtag = "5")
{
echo "                 <input type="radio" name="tg" value="Freitag" checked> Freitag\n";
} else {
echo "                 <input type="radio" name="tg" value="Freitag"> Freitag\n";
}
if ($wtag = "6")
{
echo "                 <input type="radio" name="tg" value="Samstag" checked> Samstag\n";
} else {
echo "                 <input type="radio" name="tg" value="Samstag"> Samstag\n";
}
if ($wtag = "1")
{
echo "                 <input type="radio" name="tg" value="Sonntag" checked> Sonntag\n";
} else {
echo "                 <input type="radio" name="tg" value="Sonntag"> Sonntag\n";
}

Danke im Voraus

  1. Hi,

    schau dir mal an, wie du deine if-Abfragen gebaut hast. Du prüfst nich, ob ein $wtag Montag, Dienstag oder Mitwwoch ist, sondern du weist diesem einen Wert zu.
    Was du willst, ist zu wissen ob $wtag gleich 1 oder 2 oder 3 ist.

    Also machst du das so: if($wtag==1){....}

    Die Anführungzeichen kommen da auch nicht hin, weil das kein String, sondern ein int ist. ( Da kann ich jetzt aber auch falsch liegen, lasse mich gerne von anderen belehren ).

    Grüße,
    Thorsten F.

    1. Hallo,
      Klöar, den Fehler hab ich schon immer gemacht. :-}
      Danke!

  2. n'abend,

    Hallo,
    ich kann in diesen Abfragen keine Fehler erkennen, trotzdem wird immer Sonntag selektiert.

    Das liegt - wie Thorsten bereits sagte - an einer falschen Abfrage.
    Da du nun weisst, dass Gleichheitsabfragen mit == gemacht werden und dein Problem damit gelöst ist, könnte man dir auch gleich noch einen kleinen Tipp geben um deine Datenredundanz etwas zu minimieren:

    echo '<ipnut type="radio" name="tg" value="Montag" ' . (($wtag == 7)?'checked':'') . '> Montag';  
    echo '<ipnut type="radio" name="tg" value="Dienstag" ' . (($wtag == 2)?'checked':'') . '> Dienstag';  
    // und so weiter und so fort
    

    auf diese Weise integrierst du deine Abfrag des Tages in die Ausgabe. Das Bedeutet, dass du nur noch eine <input>-zeile in deine code brauchst...

    ( ausdruck == true )? 'ich bin wahr' : 'ich bin falsch';

    weiterhin schönen abend...

    --
    Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
    1. Hi,

      Da du nun weisst, dass Gleichheitsabfragen mit == gemacht werden und dein Problem damit gelöst ist, könnte man dir auch gleich noch einen kleinen Tipp geben um deine Datenredundanz etwas zu minimieren:

      und das ganze könnte mit einem simplen Array gleich noch mal effizienter werden.

      [code]echo '<ipnut type="radio" name="tg" value="Montag" ' . (($wtag == 7)?'checked':'') . '> Montag';

      Übrigens empfehle ich die entsprechende XHTML-Schreibweise des Attributs.

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Hallo Cheatah,

        Übrigens empfehle ich die entsprechende XHTML-Schreibweise des Attributs.

        Wieso? Wenn es sich um ein HTML-Dokument handelt, wäre das falsch.

        Schöne Grüße,

        Johannes

        1. Hi,

          Übrigens empfehle ich die entsprechende XHTML-Schreibweise des Attributs.
          Wieso? Wenn es sich um ein HTML-Dokument handelt, wäre das falsch.

          nein, wäre es nicht.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Hallo Cheatah,

            Übrigens empfehle ich die entsprechende XHTML-Schreibweise des Attributs.
            Wieso? Wenn es sich um ein HTML-Dokument handelt, wäre das falsch.

            nein, wäre es nicht.

            Du hast recht, falsch ist es tatsächlich nicht. Von der Verwendung dieser Form in "normalem" HTML wird allerdings in der HTML-Spezifikation explizit abgeraten.

            Schöne Grüße,

            Johannes

            1. Hi,

              Du hast recht, falsch ist es tatsächlich nicht. Von der Verwendung dieser Form in "normalem" HTML wird allerdings in der HTML-Spezifikation explizit abgeraten.

              ja, mit der Behauptung, irgend welche Clients hätten Probleme damit. Aus ähnlichen Gründen soll bei XHTML auch vor dem End-Slash von empty tags ein Leerzeichen stehen. Irgendwie ist es mir aber bisher noch nicht gelungen jemanden zu finden, der diese ominösen Clients benennen kann.

              Cheatah

              --
              X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
              X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
              X-Will-Answer-Email: No
              X-Please-Search-Archive-First: Absolutely Yes
    2. Hallo,

      [...] deine Datenredundanz etwas zu minimieren:
      [Code-Vereinfachungen]

      guter Vorschlag. :)

      ( ausdruck == true )? 'ich bin wahr' : 'ich bin falsch';

      "Stimmt es, dass es wahr ist, ...?"
      Wenn schon vereinfachen, dann richtig:

      ausdruck ? 'ich bin wahr' : 'ich bin falsch'

      Den expliziten Vergleich auf "==true" kannst du dir hier gern zugunsten der Übersichtlichkeit sparen, da der Fragezeichen-Operator den Ausdruck sowieso als boolschen Wert interpretiert.

      So long,
       Martin

      --
      Lieber Blödeleien als blöde Laien.
      1. n'abend,

        Den expliziten Vergleich auf "==true" kannst du dir hier gern zugunsten der Übersichtlichkeit sparen, da der Fragezeichen-Operator den Ausdruck sowieso als boolschen Wert interpretiert.

        dessen bin ich mir bewusst. Es ging lediglich darum, den OP nicht zu verwirren. Wer den Unterschied zwischen = und == nich kennt, wird sich kaum mit "auto-typ-vergleichen"[1] auskennen. Selbiges gilt auch für die im Beispiel unnötige Klammerung.

        [1] Weiss der Geier wie man das auf Deutsch nennen will.

        weiterhin schönen abend...

        --
        Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
        sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|