Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

so, mal wieder ein problem von mir:D :

ich habe auf einer homepage eine tabelle, die, klickt man auf die jeweilige überschrift, eben nach dieser überschrift sortiert wird

das eigentliche problem ist, das ich dazu kein xml/xlst, kein php verwenden kann.

mit javascript ist das meinen recherchen nach nur im ie ab 5 möglich, es ist aber unbedingt nötig, dass die gängigsten browser (also ie ab 5, netscape ab 4,6X, mozilla und opera) damit zurecht kommen

für einen guten rat wäre ich sehr sehr dankbar, hab wirklich das halbe internet abgesucht :(

Geschrieben

nach meinem bescheidenen wissen bleibt da nur noch die alternative die tabelle grafisch in flash anzulegen und die elemente dann per buttons neu zu positionieren.

muß nicht der letzte ausweg sein, is aber ein ansatz, vielleicht hilfts:(

Geschrieben

ok, danke, aber flash kommt nicht in frage, leider....

ich habe mich nun heute weiter durchs internet gequält und scripte in javascript ausfindig gemacht, nur leider fehlt mir noch einer für den nn4.x, der auf- und absteigend sortiert - vielleicht weiss jemand rat?

Geschrieben

Die Daten werden hier in einem mehrdimensionalen Array gespeichert. Die Lösung an sich mag zwar nicht elegant sein, aber sie funktioniert.

Beim Klick auf den Spaltentitel wird eine sortid über den URL übergeben. Diese wird benutzt, um das Feld zu bestimmen, nach dem sortiert werden soll.

Da sort() in der Regel alphabetisch sortiert, wird das entsprechende Feld einfach noch einmal vorne drangehängt, bevor sortiert wird.

Bei der Ausgabe wird das vorangesetzte Feld einfach ignoriert.

Mit PHP geht's übrigens deutlich einfacher (multisort() und das war's)

Die absteigende Sortierung kannst Du selbst implementieren. Dazu mußt Du wahrscheinlich die JS-Methode reverse() benutzen.

<html><body>

<table>

<script>

// Hier stehen die Daten

spalten=new Array("Vorname","Name","Ort");

daten="Hans,Dampf,Hannover|Werner,Meier,München|Michael,Schmidt,Aachen|Stefan,Hartmann,Berlin";

ds=daten.split("|");

// Hier wird die Kopfzeile der Tabelle gebastelt

adresse=location.href.substring(0,location.href.indexOf('?'));

document.write("<tr>");

for(i=0;i<spalten.length;i++)

{

document.write("<td><a href='javascript:location.href=\""+adresse+"?"+i+"\"';>"+spalten+"</a></td>");

}

document.write("</tr>");

// Wenn keine sortid gesetzt ist, wird nach der ersten Spalte sortiert (sortid=0)

sortid=location.search.substr(1);

if(sortid==''){sortid=0;}

// Ab hier wird sortiert

row = new Array;

for (i=0;i<ds.length;i++)

{

satz=ds.split(',');

row=satz[sortid]+",";

for(t=0;t<satz.length;t++)

{

row=row+satz[t]+",";

}

}

row.sort();

// Ausgabe der Daten

for (i=0;i<row.length;i++)

{

// document.write("<tr><td colspan=3>"+row+"</td></tr>");

zelle=row.split(',');

document.write("<tr><td>"+zelle[1]+"</td><td>"+zelle[2]+"</td><td>"+zelle[3]+"</td></tr>");

}

</script>

</table>

</body></html>

Geschrieben

ok, super vielen dank, dass du dir die mühe gemacht hast. gestern abend hab ich auch sowas ähnliches gefunden.

ich würde es ja gerne mit php machen, hab aber überhaupt keine ahnung davon

Geschrieben

Ich hatte zuerst auch keine Ahnung davon, aber nach einer Woche stand mein neues Design in PHP. Mein Tip: Lerne es! Ist wohl eine der einfachsten Progranniersprachen und absolut benutzerfreundlich.

Geschrieben

hmm, das mit dem lernen ist so einen sache... ausserdem wäre es nicht wirklich effizient, ist ja nicht für meine private homepage, sondern für ein firmenprojekt. ich habe es letztendlich in javascript gemacht, aber anders als oben vorgeschlagen. falls jemand die source haben will, bescheid sagen.

Geschrieben

Wenns ein Firmenprojekt ist, dann solltest du es ja erst recht lernen. Stell dir mal vor, da kommen mal Daten dazu und du kommst irgendwann mal auf ne 1000 Zeilen Tabelle. Dann kannst du dein Javascript vergessen und ist es auch noch so fehlerfrei. PHP ist da bei weitem performanter.

Geschrieben
Originally posted by jomama

Wenns ein Firmenprojekt ist, dann solltest du es ja erst recht lernen. Stell dir mal vor, da kommen mal Daten dazu und du kommst irgendwann mal auf ne 1000 Zeilen Tabelle. Dann kannst du dein Javascript vergessen und ist es auch noch so fehlerfrei. PHP ist da bei weitem performanter.

okay, ich kann es leider jetzt nicht lernen, ich muss gerade java lernen, und das lastet mich im moment gänzlich aus, weil ich noch nie zuvor programmiert habe...

ausserdem brauche ich dass script nur für die sortierung einer relativ kleinen tabelle, die daten werden aus einer DB gelesen und via JSP geschrieben, also muss das nichts aufwendiges sein. und da geht php auch net.

Geschrieben
Originally posted by LINK

die daten werden aus einer DB gelesen und via JSP geschrieben,

Warum sortierst du die Daten nicht per JSP und läßt die dann sortiert schreiben? Oder hab ich jetzt irgendwas überlesen? :confused:

Geschrieben
Originally posted by Wolle

Warum sortierst du die Daten nicht per JSP und läßt die dann sortiert schreiben? Oder hab ich jetzt irgendwas überlesen? :confused:

die daten werden ja beim ersten mal sortiert in eine tabelle geschrieben, die der user dann bei sich im browser sieht - logisch

nur danach soll er die möglichkeit haben, beim klick auf den kopf der tabelle, diese nach der jeweiligen spalte auf- und absteigend zu sortieren.

wie das per JSP realisiert werden sollte, weiß ich nicht, weil ich nicht weiß, ob das möglich ist. ich habe mich erst seit donnerstag mit JSP's befasst :(

Geschrieben
Originally posted by LINK

nur danach soll er die möglichkeit haben, beim klick auf den kopf der tabelle, diese nach der jeweiligen spalte auf- und absteigend zu sortieren.

wie das per JSP realisiert werden sollte, weiß ich nicht

Die Daten werden ja per SQL ausgelesen, da kannst du in der SQL-Anweisung mit "ORDER BY" die Daten direkt sortieren und dann so an den Browser schicken. Je nach Button müßtest du dann halt eine eigene SQL-Anweisung schreiben oder die SQL-Anweisung per Stringoperationen zusammen bauen.

Andere Möglichkeit wäre die ganzen Daten aus der DB auszulesen und in ein Array zu speichern. Da kannst du die dann auch sortieren. Allerdings braucht das je nach Datenmenge dann halt auch entsprechend Speicher.

Wenn du es etwas genauer brauchst, kannst du ja evt. noch mal im Java-Forum nachfragen. Ich selber kann so gut wie kein Java und kann dir daher nur den groben Ansatz liefern...

Geschrieben

hmm, okay, per sql, dann müsste ja wieder auf die datenbank zugegriffen werden, das geht leider nicht, zu viel traffic, denke ich mal.

ich habe es ja mit javascript gelöst, und es läuft. die daten werden in einen array geschrieben und je nach rückgabewert ab- oder aufsteigend sortiert. das dumme ist, ich stehe erst am anfang meiner ausbildung, und habe von nichts eine ahnung. und java lerne ich erst gerade. in den letzten wochen habe ich sehr viel gelernt, aber es sind immer nur kleine ausschnitte, es ist halt nicht so einfach, etwas zu realisieren, von dem man keine ahnung hat.

ich werde mich noch mal im internet umsehen.

Geschrieben

Laß es ruhig bei der Javascript-Lösung, wenn es funktioniert und sichergestellt ist, daß alle, die darauf zugreifen Javascript aktiviert haben. Du hälst damit die Serverlast und den Traffic etwas niedriger, im Fall der Sortierung streichst Du eine mögliche Fehlerquelle (Verbindung Webserver - Datenbank) und schneller sollte es auch sein, da die Daten ja eh schon beim Client sind und halbwegs aktuelle PCs die Sortierung recht schnell hinbekommen sollten.

Geschrieben

da muss ich dir wirklich zu stimmen.

ich hatte vor ich PHP gelernt habe, auch schon C++ und Java gemacht und das in PHP anzuwenden war dann nicht mehr schwer!

wenn du die Grundkenntnisse, wie Schleifen usw. beherrscht, dann geht das mit PHP fast immer gleich!

PHP ist wirklich eine der besten Sprachen für Homepages, wo man auch überall anschauen kann, nicht so wie Flash bzw. Java!

Geschrieben

okay, vielleicht habe ich mich missverständlich ausgedrückt...

also, diese homepage ist 1. nicht meine, sondern die der firma und 2. keine "richtige" homepage, sondern eine intranetseite unseres kunden, über die daten abgefragt werden können.

diese seite ist also schon fertig, und es war ein heidenaufwand, diese so zu designen, dass sie in allen browsern gleich aussieht, denn dass kostet nicht nur nerven. die ausgabe der daten erfolgt über jsp's, also werde ich das alles garantiert nicht in php umschreiben, das wäre das letzte was ich täte, außerdem müsste der kunde das bezahlen, und das erklärt dem mal. sicher wäre die sortierung dann nicht so ein aufwand gewesen, aber da ich dass nun gemacht habe, ist mir's nun auch egal.

okay, um euch zu beruhigen, verspreche ich hiermit hoch und heilig, php zu lernen in meiner ausbildung, wenn ich denn mal zeit habe, was aber im moment nicht möglich ist, denn ich lerne gerade java - ich glaube ich hatte das weiter oben erwähnt - was für mich nicht gerade einfach ist, da ich noch nie programmiert habe bisher.

trotzdem danke für die tipps ;)

Geschrieben

ich habs schon verstanden!

aber für Homepages ist PHP am besten und nicht Java bzw. HTML!

und Java ist eine Sache für sich. Muss ich auch leider lernen in der Schule.

Java ist sehr langsam, das stört mich an der Sprache, sonst ist es ganz OK!

Geschrieben
Originally posted by DFBL-Benjamin

aber für Homepages ist PHP am besten und nicht Java bzw. HTML!

Ist vielleicht deine Meinung, mal abgesehen davon das du ohne HTML keine Seiten machen kannst...

HTML beschreibt das Aussehen der Seite. PHP, Java oder ASP sind Programmier-Sprachen und somit ganz was anderes.

Jede der Programmier-Sprachen hat ihre Vor- und Nachteile. Es kommt drauf an, was auf den Servern überhaupt läuft, auf die Anwendung die damit entwickelt werden soll und natürlich auch auf das Wissen, das man in den einzelnen Sprachen hat. Pauschal kann man nicht sagen, das eine bestimmte Sprache am besten ist.

Aber das ganze wird schon recht Offtopic, da die ürsprüngliche Frage eine ganz andere war.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...