Reihenfolge der Zeilen einer Datei verändern via Interface

Jörg Rißmann

Erfahrenes Mitglied
Hallo zusammen.

Ich habe eine .xml Datei pro Produkt mit den Namen der Bilder, die zu dem Produkt gehören.
Die Namen sind wirr, also nicht nach einer Schemata erstellt, die Anzahl ist von 1-n unbegrenzt, durschnittlich sind es 4 Bilder.
Code:
<?xml version="1.0" ?>
<fotos>
	<pic url="produktnamen/bilder/al3100_3.jpg" text="" />
	<pic url="produktnamen/bilder/blabla.jpg" text="" />
	<pic url="produktnamen/bilder/sonstwas.jpg" text="" />
	<pic url="produktnamen/bilder/al3100.jpg" text="" />
	<pic url="extras/bilder/zusatzbild001.jpg" text="" />
</fotos>

Ich möchte nun ein Interface programmieren, in dem dümmste anzunehmende User die Reihenfolge der Bilder verändern können.
Technisch ist dies nur durch eine "Zeilenverschiebung" möglich, da die Datei von einer -nicht für mich erreichbarer- Flash-Datei eingelesen wird.

Wie würdet ihr das User-Interface gestalten, also nicht den Quellcode sondern nur vom Ansatz her?
Auf Javascript möchte ich verzichten.
 
Hi,

ich würde folgendermaßen vorgehen (wobei javascript aktiviert sein muß, sorry):
1. XML-Datei einlesen und Daten in einem (nummerierten) array speichern
2. Dem Benutzer die Daten untereinander präsentieren in der Reihenfolge wie sie gerade auftauchen (dabei die Gesamtanzahl merken und vorne weg nummerieren, alles in ein post-Formular packen wobei die Felder die Namen des Arrays haben müssen)
3. Hinter jedem Datensatz einen Pfeil rauf und einen Pfeil runter machen zum verschieben (außer beim 1. und letzten DS, dort nur ein runter bzw. rauf-Pfeil. Diese als image-Buttons machen.
Beim Anklicken der Pfeile wird der Index des Datensatzes in ein Hidden-Feld geschrieben (javascript). Außerdem wird in ein andere hidden-Feld geschrieben obs rauf oder runter gehen soll. Danach wird die Seite automatisch neu geladen.
4. Auslesen des übergebenen Indexes. Alle Daten im Array mit diesem Index in eine neue Array-Zeile schreiben die den Index Gesamtanzahl + 1 hat. Dann prüfen obs rauf oder runter gehen soll. Bei runter werden alle Array-Elemente mit dem übergebenen Index von den Arrayelementen mit dem übergebenen Index+1 überschrieben. Dann überschreibt man die Arrayelemente mit dem übergebenen Index+1 mit den vorher gespeicherten Elementen des Arrays mit der Gesamtanzahl +1.
5. Ausgabe des geänderten Arrays wie unter 2.

Beispiel:
5 Datensätze insgesamt (also höchster Index = 4 wegen dem ersten 0-Element).
Array = arrBild
Der Benutzer klickt beim 3. Datensatz (arrBild[2] auf runter (3. DS soll an 4. Stelle gehen).
Die Daten werden an die versteckten Elemente geschickt und das Formular mit dem Array neu aufgerufen.
arrBild[2] wird in arrBild[4+1] (also ans ende) geschrieben.
arrBild[2+1] wird in arrBild[2] geschrieben
arrBild[4+1] wird in arrBild[2+1] geschrieben
das Formular wird aufgebaut in der neuen Reihenfolge

Ich hoffe das war einigermaßen verständlich.

Bis denne,

Bugs
 
Zurück