Ordnen/Verschieben, dafür eine Klasse?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 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.
  • 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 ;)

    [Blockierte Grafik: http://img238.imageshack.us/img238/4627/unbenannt2e.th.png]


    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 ;)
  • 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 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..
  • 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.