radio buttons :( ... else funktioniert nicht

Acriss

Gesperrt
Hi...
Ich bastel eine Tabelle, die mit Hilfe von Radiobuttons die Farbe ändert.
Dazu folgender code:
PHP:
[...]
echo("<td bgcolor=\"#444444\" ><input type=\"radio\" name=\"farbe\" value=\"rot\"><br><input type=\"radio\" name=\"farbe\" value\"gruen\"></td>");
[...]

Da ist ja noch kein Problem:
Aber hier:

PHP:
[...]
 if ($HTTP_POST_VARS["farbe"] == rot)
{ 
echo("<td bgcolor=\"#FF0000\">&nbsp;</td>"); 
}
 elseif ($HTTP_POST_VARS["farbe"] == gruen)
{
 echo("<td bgcolor=\"#00FF00\">&nbsp;</td>");
} 
else
{ 
echo("<td bgcolor=\"#444444\" >&nbsp;</td>"); 
}
[...]

Es wird immer die elseif_Anweisung durchgeführt, sprich:
Es ist immer ein grünes Feld zusehen (#00FF00)
Selbst wenn gar nichts ausgewählt ist.
Wenn das rote Feld ausgewählt wurde,
erscheint ein rotes und ein grünes Feld.
Wo liegt mein (denk)Fehler?
 
Dein Problem liegt darin, das du Strings nicht als solche Kennzeichnest:

PHP:
// Dein Code:
 if ($HTTP_POST_VARS["farbe"] == rot)

// Richtiger Code:
 if ($HTTP_POST_VARS["farbe"] == 'rot')

BTW: Bitte keine $HTTP_POST_VARS verwenden, das ist obsolete. Verwende stattdessen $_POST.

BTW2: Warum löst du es nicht über ne Fall-Abfrage (switch)?
 
stimmt, das wäre gegagngen.
Nur kenne ich switsch nur mit zahlen
wie wäre das denn anders?


Ja, ich h#nutze ein älteres Buch, und da steht das noch mit $HTTP_POST....

ok, danke für Deine Hilfe
das hatte ich also vergessen :)
 
PHP:
switch( $_POST['farbe']) {
   case 'rot':
      // mach was bei rot
   break;

   case 'gruen':
      // mach was anderes bei gruen
   break;

   default:
      // ungültige Farbe verwendet, z.B. Fehlermeldung
   break;
}
 
hmm
mist, ...
da liegt immernoch der selbe Fehler
Der code jetzt:
PHP:
 if ($_POST["farbe"] == 'rot')
{ 
echo("<td bgcolor=\"#FF0000\">&nbsp;</td>"); 
}
 elseif ($_POST["farbe"] == 'gruen')
{
echo("<td bgcolor=\"#00FF00\">&nbsp;</td>");
} 
else 
{
echo("<td bgcolor=\"#444444\" >&nbsp;</td>"); 
}
Nach wie vor:
Es wird IMMEr ein grünes Feld gezeigt :(
 
Zeig doch ma bitte das komplette Form, evtl liegt der Fehler schon wo anders. Übrigens könnte ein ändern des error_reportings da auch was helfen. Einfach an den Anfang des Scripts das hier setzen:

PHP:
error_reporting( E_ALL | E_NOTICE );
 
oh
das is mir peinlich :( :-[
ich hatte davor nochnen code, der es grün erscheinen lässt...
aber
Die switchabfrage funktioniert auch nicht :(
Nur ein rotes Feld wird angezeigt,
ansosnten default :(
 
Mach mal folgendes: Vor die Switch-Anweisung pack mal den code:

PHP:
echo "<pre>";
print_r($_POST);
echo "</pre>";

Und schau dir die Ausgabe an.
 
Array
(
[farbe] => 1
[submit] => anzeigen
)

ich habe rot durch 1 ersetzt und gruen durch 2
aber 2 taucht nicht auf :(
 

Neue Beiträge

Zurück