Echt Holler: select options werden nicht in richtiger Reihenfolge übergeben?

Krüäzi

Ich habe ein multiple select Feld, in das Benutzer dynamisch per Javascript options eintragen können.
Sie können auch einzelne options in der Liste nach oben und unten verschieben.

Mein Problem ist jetzt, dass PHP beim Übertragen der Daten, die select options immer in der Reihenfolge belässt, wie sie vom Benutzer eingegeben wurden.

Bsp:

Der Benutzer gibt hintereinander 'test1','test2','test3' ein und verschiebt dann 'test1' hinunter, sodass dann im select Feld 'test2','test1','test3' steht.
PHP überträgt die Daten dann aber so, dass bei einer erneuten Ausgabe wieder 'test1','test2','test3' ausgegeben wird.

Woran kann das liegen?

gruß vom holler

  1. Hi, etwas genauer bitte...

    Der Benutzer gibt hintereinander 'test1','test2','test3' ein und verschiebt dann 'test1' hinunter, sodass dann im select Feld 'test2','test1','test3' steht.
    PHP überträgt die Daten dann aber so, dass bei einer erneuten Ausgabe wieder 'test1','test2','test3' ausgegeben wird.

    Wie und wo werden denn die options gespeichert? In einer Datenbank oder in einem Textfeld? Wie werden Sie wieder eingelesen?
    Die gespeicherten options sollten halt schon mit einer gewissen Logik gespeichert werdem.
    gruß Uli

    1. Wenn sie fertig eingetragen werden, werden sie in einer MySQL Datenbank gespeichert, in der Reihenfolge, in der PHP sie liefert.

      Wie gesagt habe ich im Formular ein multiple select Feld.

      Darunter ein input="text" wo man Text eingeben kann, der dann per Klick auf den Button "Einfügen" als option ins select Feld eingefügt wird.
      Das läuft alles mit Javascript.

      Wenn der Benutzer jetzt hintereinander 'test1', 'test2' und 'test3' eingibt steht im select Feld

      test1
      test2
      test3

      Nun hat man noch die Möglichkeit die options zu verschieben.
      Verschiebt man zb test1 um eins nach unten steht dann im select Feld

      test2
      test1
      test3

      Und da macht PHP den Fehler, denn wenn ich mir die options auf der Zielseite mit einer for() Schleife ausgeben lasse, steht da wieder

      test1
      test2
      test3

      Vielleicht schickt auch der Browser die Daten falsch, ich weiß eben nicht weiter :(

      1. Jo,

        Vielleicht schickt auch der Browser die Daten falsch, ich weiß eben nicht weiter :(

        Dann lass Dir doch mal im PHP-Script die Daten ausgeben
        var_dump($HTTP_POST_VARS);
        Dann siehst schonmal wie die Daten ankommen und dann kannste einen Fehler hinsichtlich PHP schpon mal ausschliessen.

        Wenn es am Js liegt:
        Dein JavaScript müsste irgenwas in den Options speichern, das die Reihenfolge der Antworten eindeutig zuordnet. Das könnte man zum Bsp. über das Attribut id machen, dass bei jeder Verschiebung dann halt neu gesetzt werden muss. So könnte man mit PHP die Reihenfolge wiederherstellen.

        Uli