while (false = true) { … }
Einer unserer Kunden hat mehr als 3000 HTML-Files in seinem (unserem) CMS.
Die Berechtigungs-Verwaltung der einzelnen Ordner und HTML-Files wird als Tabelle angezeigt.
In jedem Verzeichniss ist eine weitere Tabelle mit Ordner und HTML-Files
Die Liste ist rekursiv aufgebaut.
Bei jedem Klick auf eine Zeile wird “selectRow ([id])” aufgerufen.
Jetzt ratet mal was die Javascript Funktion so lustiges mit for() Schleifen machen kann.
-
<script>
-
function selectRow (id) {
-
……
-
var found = false;
-
for (var ix=0; ix < userSelection.length; ix++) {
-
if (id == userSelection[ix]) {
-
found = true;
-
break;
-
}
-
}
-
……
-
if ( ! found) {
-
userSelection.push (id);
-
var rows = document.getElementsByTagName(‘tr’);
-
for (var ix=0; ix < rows.length; ix++) {
-
if (rows[ix].className == ‘selected’)
-
rows[ix].className = ‘selectable’;
-
}
-
var myObj = null;
-
for (var ix=0; ix < userSelection.length; ix++) {
-
myObj = document.getElementById(userSelection[ix]);
-
if (myObj)
-
myObj.className = ‘selected’;
-
}
-
}
-
}
-
</script>
Der IE6 hat fast eine Minute gebraucht um alle tr´s auf der Seite anzuschauen den Style evlt. zu ändern und dann davon wieder rückgängig zu machen.
(Script ist zur Übersicht gekürzt / angepasst)
Das hier ist ein Javascript aus einem “Kontaktformular” – da wurde der Mail-Body komplett mit Javascript zusammen gesetzt.
-
<script>
-
……
-
var absender = "Absender:\n";
-
var komm = "Sonstiges:\n";
-
var trenn = "\n==================\n";
-
var zeile = "\n";
-
var z1 = document.web2fax.zahl1.value;
-
var zimmer1 = "Einzelzimmer:" + z1;
-
var z2 = document.web2fax.zahl2.value;
-
var zimmer2 = "Doppelzimmer:" + z2;
-
var z3 = document.web2fax.zahl3.value;
-
var zimmer3 = "3-Bettzimmer:" + z3;
-
var z4 = document.web2fax.zahl4.value;
-
var zimmer4 = "Appartement:" + z4;
-
var zimmer = zimmer1 + zeile + zimmer2 + zeile + zimmer3 + zeile + zimmer4;
-
var p1 = document.web2fax.gesamt.value;
-
var personen = "Personen insgesamt: " + p1;
-
var v1 = document.web2fax.tag_von.value;
-
var v2 = document.web2fax.monat_von.value;
-
var v3 = document.web2fax.jahr_von.value;
-
var von = "Anreise:" + v1 + v2 + v3;
-
var b1 = document.web2fax.tag_bis.value;
-
var b2 = document.web2fax.monat_bis.value;
-
var b3 = document.web2fax.jahr_bis.value;
-
var bis = "Abreise:" + b1 + b2 + b3;
-
var a1 = document.web2fax.name.value;
-
var a2 = document.web2fax.strasse.value;
-
var a3 = document.web2fax.ort.value;
-
var a4 = document.web2fax.fon.value;
-
var a5 = document.web2fax.fax.value;
-
var a6 = document.web2fax.email.value;
-
var e1 = document.web2fax.pension.value;
-
var extras = e1;
-
var adresse = a1 + zeile + a2 + ", " + a3 + zeile + "Telefon: " + a4 + ", Fax: " + a5 + zeile + "Email: " + a6;
-
var sonstiges = document.web2fax.kommentar.value;
-
var inhalt = absender + adresse + trenn + zimmer + trenn + personen + trenn + extras + trenn + von + zeile + bis + trenn + komm + sonstiges;
-
……
-
</script>
Irgendjemand (nicht von uns) hatte die gute Idee die Prüfung der Daten und die Mail-Body-Erstellung von Javascript neuzuschreiben, und zwar in PHP.
Das ist rausgekommen:
-
<?php
-
$absender = "Absender:\n";
-
$komm = "Sonstiges:\n";
-
$trenn = "\n<br>==================\n<br>";
-
$zeile = "\n<br>";
-
$z1 = $zahl1;
-
$zimmer1 = "Einzelzimmer: " . $z1;
-
$z2 = $zahl2;
-
$zimmer2 = " Doppelzimmer: " . $z2;
-
$z3 = $zahl3;
-
$zimmer3 = " Personen insgesamt: " . $z3;
-
$zimmer = $zimmer1 . $zeile . $zimmer2 . $zeile . $zimmer3 . $zeile . $zimmer4;
-
$p1 = $gesamt;
-
$personen = " Personen insgesamt: " . $p1;
-
$v1 = $tag_von;
-
$v2 = $monat_von;
-
$v3 = $jahr_von;
-
$von = "Anreise: " . $v1 . $v2 . $v3;
-
$b1 = $tag_bis;
-
$b2 = $monat_bis;
-
$b3 = $jahr_bis;
-
$bis = "Abreise: " . $b1 . $b2 . $b3;
-
$a1 = $name;
-
$a2 = $strasse;
-
$a3 = $ort;
-
$a4 = $fon;
-
$a5 = $fax;
-
$a6 = $email;
-
$e1 = $pension;
-
$extras = $e1;
-
$adresse = $a1 . $zeile . $a2 . ", " . $a3 . $zeile . "Telefon: " . $a4 . ", Fax: " . $a5 . $zeile . "Email: " . $a6;
-
$sonstiges = $kommentar;
-
$inhalt = $absender . $adresse . $trenn . $zimmer . $trenn . $personen . $trenn . $extras . $trenn . $von . $zeile . $bis . $trenn . $komm . $sonstiges;
-
$inhalt = "<font face=\"Verdana\" size=\"2\">".$inhalt."</font>";
-
?>
