You are not logged in.

  • Login

1

Monday, October 26th 2009, 5:00pm

Ordnen/Verschieben, dafür eine Klasse?

Morgen Leute,

hab mal eine Frage ob von euch jemand eine gute Klasse hat,
diese soll folgenden Zweck erfüllen:

1. Eintrag 1 - hoch - runter
2. Eintrag 2 - hoch - runter
3. Eintrag 3 - hoch - runter
4. Eintrag 4 - hoch - runter

Und jetzt Wenn man zB, Eintrag 2 runterstuft soll es dann so aussehen.


1. Eintrag 1 - hoch - runter
2. Eintrag 3 - hoch - runter
3. Eintrag 2 - hoch - runter
4. Eintrag 4 - hoch - runter

Kann das natürlich ohne Klasse machen nur sieht das dann ziemlich unsauber aus.
Meine Idee war, Eintrag raussuchen, Reihenfolge entweder mit 1 addieren oder subtrahieren.
Danach wird der Eintrag, der "ersetzt" wird ebenfals mit 1 addiert oder subtrahiert.
Fazit: => unsauber und zu viel Code.

Jemand der mir helfen kann !?

Danke.

2

Monday, October 26th 2009, 6:17pm

Hi,
Ich verstehe leider noch nicht genau was du vorhast.
Was willst du sortieren? Eine Datenbank? Ein Array?

Wie willst du sortieren? Mit JavaScript? AJAX? Framework erlaubt?

3

Monday, October 26th 2009, 7:56pm

Hmm wusste ich es doch, auch wenn ich es so gut beschrieben habe wie ich es nur konnte muss wohl ein Bild her :p

Ich hoffe man versteht es ;)




Sortieren will ich das am liebsten per PHP, d.h. kein Ajax/Javascript/oä.
Die Daten werden in der Datenbank abgespeichert, Beispiel:

Tabelle = links
Spalten = id, name, reihenfolge

Die reihenfolge soll geändert werden. Das heisst wenn zB. Link 1 die Reihenfolge "1" besitzt und man auf den Pfeil "nach unten" klickt, dann soll die Reihenfolge um 1 vergrössert werden werden und
die Reihenfolge von Link 2 um 1 verkleinert.

Bisschen scheisse erklärt, hoffe trodztem auf hilfe ;)

4

Monday, October 26th 2009, 9:35pm

Naja, so habe ich mir das auch gedacht, nur war ich etwas verwirrt, weil es das perfekte Szenario für AJAX ist, du aber im PHP Forum postest.
Also wenn du es mit AJAX umsetzen willst, sei dir JQUERY ans Herz gelegt, siehe http://jqueryui.com/demos/sortable/#default
Jquery überträgt immer die gesamten Listen. Es ist also sehr einfach zu programmieren, da die Listen immer komplett neu geschrieben werden.

Ansonsten kann ich dir auch keine fertige Klasse anbieten.
Übertrage doch am besten immer das aktuelle Element und die neue Position.
Wenn du alle Positionen in Reihenfolge durchwanderst und zuerst auf das Element stößt, dann löschst du sie. Wenn du dann auf die Position triffst, fügst du es ein (der Rest wird aufgeschoben.)
etc..

5

Monday, October 26th 2009, 9:41pm

Okay, der Link hat mich überzeugt!
Das ist noch komfortabler als dies mit den Pfeilen zu machen!
Eventuell noch ein Denkanstoß dafür?
Bin leider nicht so auf Javascript.. Weiss auch nicht warum ich da 0 Durchblicke.

Okay was ich brauche ist aufjedenfall ein POST/GET Request, damit ich dies in die Datenbank schreiben kann.
Das würde ich eventuell sogar hinbekommen, nur weiss ich leider nicht wo ich dies genau einsetzen kann.

$(function() {
$("#sortable").sortable();
$("#sortable").disableSelection();
});

Auch wenn ich hier kaum durchblicke, verstehe ich nicht ganz wo hier der Request hin soll.
Sorry, bin leider nicht so auf Javascript ;( muss ich mir mal die Tage angucken.

6

Monday, October 26th 2009, 11:11pm

Ich habs jetzt auch nicht probiert, aber ein Ansatz sollte die Methode serialize, bem Event update sein:

JavaScript Code

1
2
3
$("#sortable").bind('sortupdate', function(event, ui) {
	alert($(this).sortable("serialize"));
});


Paaren musst du das dann mit einem $.post von jquery.

Similar threads

Social bookmarks