Hallo an Alle,
Hallo einer,
Besteht die Möglichkeit, HTML-Text dynamisch zur Laufzeit ähnlich einer Datenbank zu erzeugen?
hierzu haben die götter javascript erfunden ;-)
Hier ein paar nähere Erläuterungen:
Es werden alle Daten aus einer Datenbank einmal mit dem Aufruf der HTML-Seite geladen.
Diese Daten sind reine HTML-Text-Links, die man nach verschiedenen Kriterien sortieren kann.
ich vermute du meinst sowas:
<a href="http://www.derlink1.de">http://www.derlink1.de</a>
Wenn nicht ist auch egal, das benötigte JavaScript (auf dem Client)müßte sich ggf. ohnehin um die HTML-Formatierung (mit-)kümmern.
Wie stelle ich es grundsätzlich an, dass diese Text-Links clientseitig zur Laufzeit, beispielsweise gebe ich die ersten 3 Buchstaben des Namens an, sortiert werden?
anstelle die Liste direkt in den <body> bereich schreiben zu lassen, kann der serverscript, das ganze auch in ein <script> element ausgeben und zwar als JavaScript-Array - was wohl mit am einfachsten zu sortieren ist.
Bei IE5 (und irgendwie auch im NS6) wäre es prinzipiell auch möglich, gleich eine HTML-Tabelle generieren zu lassen und diese dann per DOM zu verwurschteln, z.B. die positionen zweier Zeilen (TR) via .swapNode() zu tauschen.
Am einfachsten könnte der Serverscript sowas ausgeben:
<script language="JavaScript1.2" type="text/javascript">
<!--
var arLinkliste= new Array (
"http://www.link5.edu",
"http://www.link1.de",
"http://www.link3.net",
"http://www.link2.com",
"http://www.link4.org"
// etc. pp
);
//-->
</script>
mit einem schlichten arLinkliste.sort() werden die URLs dann alphabetisch sortiert falls nötig, optional kann sort() auch den Namen einer selbst gebastelten Sortierfunktion annehmen, welche dann nach andere Kriterien sortiert, aber das geht dann schon ein ganzes Stück weiter.
Optional wären auch mehrdimensionale Arrays möglich (ich hffe mal das stimmt so <g>).
var arLinkliste=new Array("a", "b", "c")
arLinkliste["a"] = new Array(
"http://www.anderes-web.de",
"http://www.wussel-web.de/archiv/",
"http://www.geocities.com/~s23vnli/allerlei/" );
arLinkliste["b"] = new Array(
"http://www.bloed.de",
"http://www.bastelseite.de" );
etc.
Hier kannst du mit
arLinkliste["b"].sort()
die "unter-Arrays" (2. Ebene) sortieren.
Um das ganze dann "zur Laufzeit" auszugeben, legt Du auf der Seite einen "Layer" (irgendwas positioniertes, das in NS und IE auch per Script mit Leben gefüllt werden kann, siehe einen der 3 Millionen Beiträge im Forum und in SelfHTML ;-) ) an und schreibst dort deine Liste rein:
layer.document.write(dein_html_text)
oder
objDiv.indertAdjacentHtml(beforeEnd, dein_html_text)
Über diesem layer dann ein paar "JavaScript-Links" die sich um das Schreiben kümmern.
<a href="javascript://" onClick="sortByURL()">Nach URL sortiert</a>
Beim Erstellen der Liste aus dem Serverscript musst du "nur" darauf achten, dass das ganze nacher gültige JavaScript-Syntax besitzt, also alle " und ' richtig ausgegeben werden.
Die Ausgabefunktionen selbst können ja in einem anderen JS-files stecken und brauchen nicht vom Server "erstellt" werden.
Im Grunde also gaaanz einfach ;-), wenn du JS und irgendwas Serverseitiges kannst (Perl, PHP, ASP, CF...)
andererseits... warum schreibt der Datenbankabfrageunddateischreibscript nicht gleich eine sortierte Liste <gg>. Die Ausgabe von 2000 fertig formatierten HTML-Tabellenzeilen ist garantiert schneller als clientseitig mit JavaScript im Dokument rumzuschrubben.
Viel Spaß
CirTap