if-Abfrage mit radio-button "checked" defekt?
glan
- php
0 Thorsten F.0 glan
0 globe0 Cheatah0 Der Martin
0 globe
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
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.
Hallo,
Klöar, den Fehler hab ich schon immer gemacht. :-}
Danke!
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...
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
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
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
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
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
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
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...