php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.07.2008, 13:20  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard [JS] Divs nach Datum sortieren

Hallo Leute,

ich möchte gerne per JS ein paar Divs nach beinhaltendem Datum/Zeit sortieren:

<div id="datensatz123"><span class="dat">2008-01-01 12:00:00</span> eins</div>
<div id="datensatz200"><span class="dat">2008-01-01 13:00:00</span> zwei</div>
<div id="datensatz100"><span class="dat">2008-01-01 14:00:00</span> drei</div>

Das Datum hier wird per jscalendar vom User geändert und ich möchte onchange eine Sortierfunktion ausführen die mir die Divs nach Datum sortiert.

Hat jemand eine Idee wie man das umsetzten könnte?
cycap ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.07.2008, 13:24  
dex
Erfahrener Benutzer
 
Registriert seit: 17.06.2008
Beiträge: 195
dex befindet sich auf einem aufstrebenden Ast
dex eine Nachricht über ICQ schicken
Standard

Werden die "div's" aus der Datenbank jedes mal neu aussortiert?
Ist es überhaupt Datenbankkompatibel?

Ich habe nicht so recht verstanden, was du mit "onchange sort" meinst, aber ich denke folgendes:
Du möchtest die Einträge sortieren solange man sie bearbeitet, also sobald ein Datum geändert wurde, soll er an die richtige "Stelle" rutschen?
dex ist offline   Mit Zitat antworten
Alt 15.07.2008, 13:29  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Im Hintergrund kommen die Daten natürlich aus ner Datenbank und ich habe das ganze auch nur vereinfacht hier dargestellt, weil das nichts zur Sache tut.

Im Prinzip will ich einfach nur wenn (aus dem obigen Beispiel) die dritte Uhrzeit auf 11 Uhr geändert wird das der dann ganz nach oben rutscht, ohne irgendwelche Interaktion mit dem Server, einfach nur zur Darstellung.

Und meine Idee war halt das ich einfach bei jeder Änderung (onchange des Kalenders) alle Divs sortiere.

Man könnte natürlich auch den geänderten nehmen und schauen wo seine neue Position sein soll...
cycap ist offline   Mit Zitat antworten
Alt 15.07.2008, 13:36  
dex
Erfahrener Benutzer
 
Registriert seit: 17.06.2008
Beiträge: 195
dex befindet sich auf einem aufstrebenden Ast
dex eine Nachricht über ICQ schicken
Standard

Eine Alternative zum Datumsortieren ist, den Terminen (div's) einfach eine Nummer zuzuweisen. Das könnte dann auch mit onchange funktionieren.

Also, die einfachste bildliche Vorstellung ist ein <select> bei dem man den Termin auswählen kann und dann bearbeiten...
Funktioniert mit Javascript auf jeden fall, da kannst du ja mal recherchieren.

Würde ich als (vermutlich einzigste) akzeptable Alternative sehen!

Leider kenn ich mich mit Javascript nur in bestimmten Ecken aus, aber vom Plan her würde ich dir nicht empfehlen, die div's sortieren zu lassen, solange du an ihnen rumschraubst. Da können tolle Effekte auftreten
dex ist offline   Mit Zitat antworten
Alt 15.07.2008, 13:42  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

@dex:

Ich weiss nicht ob du mich richtig verstanden hast, ich versuchs mal so:

Die Daten kommen sortiert aus der Datenbank. Der User ändert ein Datum und ich will dem User zeigen was das für Auswirkungen auf die Reihenfolge hat BEVOR er speichert.
cycap ist offline   Mit Zitat antworten
Alt 15.07.2008, 13:55  
dex
Erfahrener Benutzer
 
Registriert seit: 17.06.2008
Beiträge: 195
dex befindet sich auf einem aufstrebenden Ast
dex eine Nachricht über ICQ schicken
Standard

Nein, ich hatte dich leider nur teilweise verstanden :3

Nun gut, machbar ist das, nur ein Problem bleibt: OnChange sortiert dann bei jedem Buchstaben/jeder Ziffer, die du eingibst.
Das kann zu erheblichen Browserproblemen und bis zur Browsertermination führen x)

Whatever...
Auf jeden Fall ist eine Javascript funktion nötig, die bei OnChange ausgeführt wird, soviel hab ich schonmal verstanden. Dazu sollten die div's eine ID bekommen, um deine Funktion bescheid zu sagen, welcher div gerade verändert wird... "getElementByID"... wenn du die dann hast, könntest du das Datum dieses div's herausfinden ... dann wäre allerdings OnExit auch noch fällig...

Alles in allem eine sehr komplizierte angelegenheit, die sehr aufwendig werden würde...

Wie bist du darauf gekommen so eine Darstellung machen zu wollen?
Ich such mal weiter nach Alternativen... diese ist mir, ganz ehrlich, zu kompliziert
dex ist offline   Mit Zitat antworten
Alt 15.07.2008, 14:01  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Das mit den Browserproblemen sollte nicht passieren können, denn das Datum wird ja per klick in einem Kalender geändert, dieser Kalender hat eine eigene onChange-Funktion. Es können also nur gültige Werte in das Feld kommen.

Den Divs Ids zu geben ist ja kein Problem. Das Problem liegt momentan einzig und allein darin, die richtige Reihenfolge zu finden und die Seite dann auch so umzubauen...
cycap ist offline   Mit Zitat antworten
Alt 15.07.2008, 14:10  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Also wenn der Kalender eine onchange-Funktion hat, musst du da rein und alle Werte der DIVs auslesen. Die dann zwischenspeichern und mit regulären Ausdrücken oder mit slice() in Jahr, Monat, Tag, Stunde, Minute und Sekunde auftrennen. Dann mit Vergleichen halt die Reihenfolge rausfinden.
Und dann bleibt nur noch die richtige Anordnung der DIV-Elemente. Wie das gemacht werden kann, hängt vom restlichen Code um die DIVs ab. Wenn da z.B. <td>'s sind, kannste die ja in einem Container-Array der Reihe nach abspeichern. Dann musst du die DIVs nur komplett da reinkopieren oder aus dem DOM an der alten Position löschen und an der neuen Position wieder einhängen.

Was ist also die genaue Frage? Bestimmte Code-Fragmente? Die Grund-Idee?
Montellese ist offline   Mit Zitat antworten
Alt 15.07.2008, 14:49  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Meine Frage war rein konzeptionell.

Ich habs jetzt so weit das ich ne Funktion habe, an die kann die ID des Divs übergeben und die liefert mir ne Zahl zurück, z.b. 20080101120000.

Nur wie Sortiere ich die jetzt ohne die Referenz zu verlieren? In PHP würde ich einfach ein Array machen und darin rumsortieren. In JS fehlen mir aber die Funktionen dazu

Wenn das sortieren geschehen ist würde ich dann einfach wieder ein Array machen, in dem das HTML der Zeilen steht. Dann den großen Div drumherum mit innerHTML neu befüllen. Ist die Idee so ok oder gibts bessere alternativen?
cycap ist offline   Mit Zitat antworten
Alt 15.07.2008, 15:52  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Bei JavaScript muss man zum Sortieren bissl selber was leisten, siehe hier SELFHTML: JavaScript / Objektreferenz / Array.
Die Referenz verlierst du nicht, indem du z.B. noch ein assoziatives Array machst, in dem du die Zahl (als String) als Index verwendest und als Value die ID des entsprechenden DIVs speicherst. Dann kannst du nach dem Sortieren einfach über den Index drauf zugreifen.

Den Rest würde ich gleich machen, wie du es beschrieben hast. Ausser du willst auf innerHTML verzichten und alles mit createElement oder so machen. Bin ich manchmal aber auch zu faul zu
Montellese ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Datum nach Jahr,Monat und Tag sortieren Arguss PHP Tipps 2008 6 19.07.2008 10:31
Dateien nach Datum sortieren ddog PHP Tipps 2008 4 09.03.2008 10:11
Nach Datum sortieren zoro Datenbanken 9 28.11.2007 14:00
Erst nach Typ, dann nach Datum sortieren iRadiaX Datenbanken 7 05.03.2006 07:16
Sortieren nach Datum flual2000 PHP Tipps 2005-2 2 18.10.2005 10:41
Ordnerausgabe nach Ordnername (Datum) sortieren... PHP Tipps 2005-2 6 05.07.2005 19:18
Ordner auslesen, Ausgabe nach dem Datum sortieren PHP Tipps 2005-2 10 02.07.2005 17:18
[Erledigt] Datum RICHTIG sortieren Datenbanken 8 14.05.2005 22:52
Tabelle nach Datum sortieren? PHP Tipps 2005 10 29.03.2005 16:02
News nach Datum sortieren maximus PHP Tipps 2005 2 10.02.2005 15:33
Sortieren nach Datum Datenbanken 2 30.01.2005 11:21
Daten einer Textdatenbank nach Datum sortieren PHP Tipps 2004-2 10 20.11.2004 11:29
Datum sortieren? PHP Tipps 2004 2 18.09.2004 19:11
[Erledigt] Nächsten Geburtstag ausgeben (Datum sortieren) Datenbanken 6 05.09.2004 20:48
[Erledigt] nach datum sortieren PHP Tipps 2004 4 27.07.2004 16:13

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript datum sortieren, div sortieren, divs sortieren, javascript divs sortieren, javascript nach datum sortieren, javascript sortieren nach datum, javascript sort div, div umsortieren, div nach datum sortieren, divs nach id sortieren, alle divs js, js ordnen nach datum, div id sortieren, php div id sortieren, javascript sortierung nach datum, js sort div, html div innerhtml sortiert, java sort div, js sort datum, javascript nach datum sortiert

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:26 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum