Formular: Zellen bei Fehler farbig markieren

  • Themenstarter Themenstarter astalavista
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
A

astalavista

hi all,
ich habe 2 felder in einem formular, die beide required sind. nun will ich per php auch abfangen, wenn keiner etwas eingegeben hat. und zwar nicht über javascript sondern über css&php.

ähnlich wie HIER http://still.de/de_contact.0.43.html?&no_cache=1 sollen die nicht eingetragenen felder (genauer gesagt: die Zellen) dann rot werden. wie mache ich das? Mein gedankengan ist SO:

wenn feld1 ODER feld 2 ODER beide leer sind, dann mache die entspr. zellen rot. wenn beide voll sind, übergebe die var. an die nä datei.

wie mache ich das? Danke :) Wie sage ich der zelle, dass die rot werden soll, wenn das input field leer ist?
 
Auf der gezeigten Seite werden die Felder erst nach dem Absenden rot (FF 1.0, IE 6).
Das heisst, dass ein serverseitiges Skript die Eingabe auswertet und dann vermutlich den Zellen eine entsprechende CSS-Klasse zuweist, also auch dort kommt kein JavaScript zum Einsatz.
In Ansätzen sollte folgender Code helfen:
PHP:
//Anfang der Seite ausgeben

if ( !empty($_POST['pflichtfeld1']) AND
     !empty($_POST['pflichtfeld2']) AND
     !empty($_POST['pflichtfeld3']) AND
     //usw.
     !empty($_POST['pflichtfeldn'])) {
    //Formular auswerten
} else {
    //Formular- und Tabellenanfang ausgeben
    echo "<tr>";
    echo "<td". 
        ((isset($_POST['nameDesSendenButton'] 
            AND empty($_POST['pflichtfeld1']))
            ?' class="fehlendeEingabe"'
            :"").">";
    echo "Beschreibung Pflichtfeld 1</td>";
    echo "<td><input name=\"pflichtfeld1\" value=\"".
        ((empty($_POST['pflichtfeld1'])
            ?""
            :$_POST['pflichtfeld1'])."\">";
    echo "</td></tr>";
    
    //das gleiche für andere Felder und Pflichtfelder wiederholen.
    //den ersten ternären Ausdruck natürlich nur für Pflichtfelder,
    //den zweiten für alle Felder

    //Tabellen und Formularende ausgeben.
}

//Ende der Seite ausgeben


EDIT: das CSS vergessen:
Code:
td.fehlendeEingabe {
    background:#f00;
}
Gruß hpvw
 
Status
Nicht offen für weitere Antworten.

Neue Beiträge

Zurück