27apricot
Erfahrenes Mitglied
Hallo allerseits,
für den dynamischen Bereich einer Internetseite habe ich einen Redaktionsbereich programmiert. In einem Formular zum Hinzufügen/Bearbeiten eines Datenbank-Eintrags werden in einer Spalte alle dem Eintrag zugehörigen Bilder als Liste angezeigt. Diese Liste habe ich mit »sortable.create« aus dem scriptaculous-Framework sortierbar gemacht, was auch ganz einwandfrei funktioniert.
Will man jetzt ein neues Bild hinzufügen, öffnet sich dafür ein Popup-Fenster mit einem Upload-Formular. Nach dem erfolgreichen Upload wird die Bilder-Liste im Hauptfenster neu geladen (per Ajax-Request; die angefrage PHP-Funktion gibt den HTML-Text für die Listenpunkte (li) zurück, die dann von der Ajax-Funktion per innerHTML in die Liste geschrieben werden. Auch das funktioniert.
Will man jetzt aber im Hauptfenster die Bilder-Liste neu sortieren, sind die Listenpunkte nicht mehr anfassbar, also »draggable«. Erst nach dem Neuladen der Seite vom Server funktioniert alles wieder. Ich habe auch schon versucht, die ganze Liste einschließlich des JS-Codes mit »sortable.create« von PHP neu schreiben zu lassen. Aber es hat auch dann nicht funktioniert.
=====================
Nachtrag
Keine Ahnung, warum ich das bisher nicht ausprobiert habe: ich habe jetzt das »sortable.create« in der JS-Funktion aufgerufen, die die Liste anhand der Antwort des Ajax-Requests neu lädt. Jetzt sind die einzelnen Listenpunkte zwar immerhin »draggable«, aber nur bedingt »droppable«: man muss zwei mal die Maus klicken, um das Element loszulassen und die Markierung als »angefasstes Element« verschwindet nicht wieder. Und offensichtlich bekommt es keine Antwort, die bei OnUpdate verarbeitet werden sollte, denn die PHP-Funktion zum Eintragen der Änderung in die DB wird nicht aufgerufen.
=====================
Ich hoffe, das ist halbwegs verständlich.
Vielen Dank im Voraus und schöne Grüße,
27apricot.
für den dynamischen Bereich einer Internetseite habe ich einen Redaktionsbereich programmiert. In einem Formular zum Hinzufügen/Bearbeiten eines Datenbank-Eintrags werden in einer Spalte alle dem Eintrag zugehörigen Bilder als Liste angezeigt. Diese Liste habe ich mit »sortable.create« aus dem scriptaculous-Framework sortierbar gemacht, was auch ganz einwandfrei funktioniert.
Will man jetzt ein neues Bild hinzufügen, öffnet sich dafür ein Popup-Fenster mit einem Upload-Formular. Nach dem erfolgreichen Upload wird die Bilder-Liste im Hauptfenster neu geladen (per Ajax-Request; die angefrage PHP-Funktion gibt den HTML-Text für die Listenpunkte (li) zurück, die dann von der Ajax-Funktion per innerHTML in die Liste geschrieben werden. Auch das funktioniert.
Will man jetzt aber im Hauptfenster die Bilder-Liste neu sortieren, sind die Listenpunkte nicht mehr anfassbar, also »draggable«. Erst nach dem Neuladen der Seite vom Server funktioniert alles wieder. Ich habe auch schon versucht, die ganze Liste einschließlich des JS-Codes mit »sortable.create« von PHP neu schreiben zu lassen. Aber es hat auch dann nicht funktioniert.
=====================
Nachtrag
Keine Ahnung, warum ich das bisher nicht ausprobiert habe: ich habe jetzt das »sortable.create« in der JS-Funktion aufgerufen, die die Liste anhand der Antwort des Ajax-Requests neu lädt. Jetzt sind die einzelnen Listenpunkte zwar immerhin »draggable«, aber nur bedingt »droppable«: man muss zwei mal die Maus klicken, um das Element loszulassen und die Markierung als »angefasstes Element« verschwindet nicht wieder. Und offensichtlich bekommt es keine Antwort, die bei OnUpdate verarbeitet werden sollte, denn die PHP-Funktion zum Eintragen der Änderung in die DB wird nicht aufgerufen.
=====================
Ich hoffe, das ist halbwegs verständlich.
Vielen Dank im Voraus und schöne Grüße,
27apricot.
Zuletzt bearbeitet: