Hopsel: Kommentare zur Auswertung durch PHP einbinden?

Beitrag lesen

Hi dieselross!

Im HTML ersetzen:

<select id= "anrede" name="Anrede" size="1"<!--ERRORMSG:Anrede-->>  
  <option></option>  
  <option>Frau</option>  
  <option>Herr</option>  
  <option>Firma</option>  
</select>

Im PHP für jedes Formularelement, das du hast, zwischen "$FTGnachricht = strip_tags($FTGnachricht);" und "$validationFailed = false;" hinzufügen (Zeile 257). Dabei "Foobar" durch entsprechende Namen wie "Anrede", "Mail" oder "Betreff" ersetzen:
$FTGErrorMessage['Foobar'] = '';

Und außerdem gleich danach hinzufügen:
$errorclass = ' class="error"';
Beachte das Leerzeichen!

Die Überprüfung der einzelnen Formularfelder ersetzen. Im Prinzip reicht es, statt style="border: 2px solid red" class="error" zu schreiben. Allerdings schreibst du das ja mehrmals und deshalb habe ich das in eine Variable ausgelagert.

if (!IsValid($FTGFoobar)) {  
  $FTGErrorMessage['Foobar'] = $errorclass;  
  $validationFailed = true;  
}

Erklärung:
Du hast ein HTML-Tag wie z. B. <h1>Meine private Homepage</h1>. Diese Überschrift möchtest du je nach Jahreszeit über CSS gestalten und fügst dazu dynamisch eine Klasse hinzu.
Wo kann die Klasse nur hin? Genau! <h1>
                                 Hier ^
Dazu definieren wir uns sowas wie einen Platzhalter: <h1<!--MyHeadingClass-->>.

Im PHP definieren wir ein Array, das die Ersetzungstexte aufnimmt: $myReplacementStrings = array();. Dieses Array bekommt für unsere Klasse einen Eintrag, der vorerst leer sein muss: $myReplacementStrings['MyHeadingClass'] = ''.
Wieso leer? Nun, wir wollen nur Ostern und Weihnachten ein besonderes Styling für die Überschrift. Ansonsten reicht das Standardlayout und wir benötigen kein Klassenattribut für die Überschrift.

Weiter im PHP prüfen wir nun, ob Weihnachten oder Ostern ist:

if(OSTERN) {  
  $myReplacementStrings['MyHeadingClass'] = ' class="ostern"';  
}  
  
if(WEIHNACHTEN)  
  $myReplacementStrings['MyHeadingClass'] = ' class="weihnachten"';  
}

Schließlich ersetzen wir mit $codeHtmlForm = str_replace('<!--MyHeadingClass-->', $myReplacementStrings['MyHeadingClass'], $codeHtmlForm); den Platzhalter, den wir vorher im HTML-Code definiert hatten.

Was kann also passieren?
1. Es ist Ostern: <h1<!--MyHeadingClass-->> wird zu <h1 class="ostern">

2. Es ist Weihnachten. Analog zu 1.: <h1 class="weihnachten">

3. Es ist weder Weihnachten noch Ostern. Da wir im PHP-Code für $myReplacementStrings['MyHeadingClass'] einen leeren String als Standard angegeben haben, wird <h1<!--MyHeadingClass-->> zu <h1>.
Es wird also keine Klasse generiert. Alles wunderbar!

In deinem Fall würde eben keine Fehlerklasse generiert, weil eben nicht Weihnachten ist... äh... weil kein Fehler gemacht wurde. ;-)

Ich hoffe, das hilft weiter!

MfG H☼psel

--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)