dynamisches sortieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • dynamisches sortieren

    mor*gäähn* zusammen,

    arbeite momentan an einem webshop und bin auf folgendes logik/programmier problem gestoßen. und zwar möchte ich, dass jeder artikel noch dynamisch sortiert werden soll. d.h. ich habe eine spalte artikelPostition in meiner Artikeltabelle in der ich dann somit die Artikel durchnummeriere. jetzt soll man aber über ein webinterface artikel nach "oben" bzw. nach "unten" verschieben können. soweit wäre dies ja kein problem, da man einfach die ArtikelPosition erhöhren bzw. verkleinern müsste. doch wenn ich jetzt einfach die ArtikelPosition erhöhe/verkleiner ist es ja sehr wahrscheinlich, dass die PositionsNr. doppelt vorkommt. somit wäre die sortierreihenfolge verfälscht. meine idee zur lösung des problems wäre es also:

    alle Artikel in ein listenfeld eintragen. durch zwei buttons (nach oben/nach unten) das listenfeld neu zu sortieren (markierter artikel wird nach oben/unter verschoben) somit wären keine doppelten Positionsnummern vorhanden. meine frage nun. geht sowas mit javascript überhaupt? (kenne mich mit javascript nur sehr wenig bis gar nicht aus) oder habt ihr eine bessere und einfachere lösung zur hand?

  • #2
    klar geht das mit JS, einfach eine for-Schleife nehmen und nach klassischen vorgehensweise die Werte tauschen.

    Kommentar


    • #3
      Re: dynamisches sortieren

      Original geschrieben von fanity
      habt ihr eine bessere und einfachere lösung zur hand?
      ja

      lese die position des eintrags den du verschieben willst (die id hast du ja)
      lese die id und die position des eintrags, dessen position 1 gößer/kleiner (je nachdem wie du sortieren willst) ist
      mache zweimal update, in denen du die position vertauschst
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        auf die idee bin ich auch schon gekommen happiness das hätte allerdings folgendes problem.

        artpos:
        1
        2
        3
        4

        Aufgabe: Artikel 4 soll an Position 2. nach deiner/meiner theorie des tauschens würde ich ja jetzt wie folgt updaten:

        1 (1)
        2 (4)
        3 (3)
        4 (2)

        somit müsste ich erneut artikel 3 mit 4 tauschen, um die "vorherige" sortierung wieder zu haben.
        bei 4 artikel wäre das jetzt nur 2x tauschen aber bei 100 artikel tausch ich mich ja doof

        oder reden wir wieder gekonnt vorbei ?

        Kommentar


        • #5
          hä?

          du hast: 1 - 2 - 3 - 4 und willst 1 - 4 - 3 - 2?
          Warum musst du dann nochmal tauschen um die vorherige Sortierung zu haben? Meinst du damit 1 - 4 - 2 - 3?

          Das wird nicht so einfach gehen.
          Du kannst entweder so tauschen wie ich gesagt habe, oder du liest direkt Position und ID des Tauschpartners oder du setzt die Position von 4 auf 0, liest die Position des Tauschpartners, erhöhst alle Werte >= dieser Position um 1 und setzt dann die Position von 4 auf den alten Wert von 2
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            hab da ein javascript gefunden, welches ich für meine zwecke wohl ein wenig umbauen kann. wenn ich eine lösung hab werde ich sie euch vorstellen. nichts desto trotz würde ich mich für weitere lösungen freuen. es ist ja immer wieder interessant zu sehen, wie andere die probleme lösen würden

            Kommentar

            Lädt...
            X