Hallo,
folgendes Problem hatte ich, habe es teilweise gelöst und möchte mal hören, ob ich da einen großen Umweg gehe:
Ich wollte in einem Formular so eine lightbox haben, wo man zusätzliche Daten eingeben (Autoren) kann, die ohne lightbox das Formular unübersichtlich machen würden. Man klickt also auf "Autor hinzufügen", die lightbox geht auf, man gibt "vorname" und "nachname" ein und klickt auf "speichern". Dann soll das "vorname" und "nachname" in der Datenbank schon mal gespeichert werden, damit man das auch ändern kann, bevor man das übergeordnete Formular absendet. Es soll also nach "speichern" im Hauptformular dieser Autor auch angezeigt werden. Dann noch ein Link zum bearbeiten, wo dann eben die lightbox schon gefüllt aufgehen soll (das habe ich noch nicht gemacht).
Wie ich zur Zeit vorgehe: Ich verwende die subModal lightbox, weil die mit "callback_function" arbeitet (kann das die gone-wild auch?).
In meinem Ausgangsformular habe ich den Link:
In der modalContent.html habe ich dann die 2 Namensfelder (sollen später noch mehr Felder sein) und den Button. Diese Funktion übergibt der callBackAuthor automatisch eine Variable namens 'returnVal' und schließt die lightbox
Den return Wert (z.b. vorname=asdf&nachname=qwer) wird dann via ajax request (von scriptaculous) an eine php Funktion gesendet und in der DB gespeichert. Die PHP Funktion liefert dann per echo an die 'onComplete' Funktion wieder diesen String und die ID des Eintrages. Mit dem String kann ich dann an der Stelle, wo der Name zu lesen sein soll dann die Werte anzeigen.
Das klappt soweit.
Ich habe lange gesucht, bin aber nicht wirklich fündig geworden und noch nicht ganz zufrieden mit der Arbeit, bzw. denke, dass ich da zwei Kurven zuviel nehme:
1. Brauche ich diese subModal lightbox, oder kann das auch die gone-wild. Weil ich scriptaculous für die autocomplete Funktion benötige würde ich die gone-wild favorisieren, die die ja mit scriptaculous arbeitet und das submodal nicht (ok submodal nutzt auch prototype, sind also in beiden fällen ein script mehr).
2. Kann ich die submodal bzw. die gone-wild lightbox so aufrufen, dass dort Daten angezeigt werden, die ich aus der DB lese? Bzw. geht das ganze sogar einfacher ohne die temporären DB Einträge, also ohne ajax aufruf?
Ich würde das mit dem Bearbeiten eines Autors jetzt so angehen, dass eine "editAuthor.html" Datei gerufen wird, die dann "irgendwie" die ID bekommt und wo beim Laden eine Ajax Funktion gerufen wird, die dann aus der DB Daten ins HTML einpflegt.
Jetzt wüßte ich erst mal gar nicht, wie ich die ID übergeben kann. Müsste ja mit document.URL funktionieren.
Also falls jemand hier eine gute Idee für mich hat, was daran zu kompliziert gedacht ist, freue ich mich über Anregungen für Verbesserungen.
Danke und Gruß
folgendes Problem hatte ich, habe es teilweise gelöst und möchte mal hören, ob ich da einen großen Umweg gehe:
Ich wollte in einem Formular so eine lightbox haben, wo man zusätzliche Daten eingeben (Autoren) kann, die ohne lightbox das Formular unübersichtlich machen würden. Man klickt also auf "Autor hinzufügen", die lightbox geht auf, man gibt "vorname" und "nachname" ein und klickt auf "speichern". Dann soll das "vorname" und "nachname" in der Datenbank schon mal gespeichert werden, damit man das auch ändern kann, bevor man das übergeordnete Formular absendet. Es soll also nach "speichern" im Hauptformular dieser Autor auch angezeigt werden. Dann noch ein Link zum bearbeiten, wo dann eben die lightbox schon gefüllt aufgehen soll (das habe ich noch nicht gemacht).
Wie ich zur Zeit vorgehe: Ich verwende die subModal lightbox, weil die mit "callback_function" arbeitet (kann das die gone-wild auch?).
In meinem Ausgangsformular habe ich den Link:
HTML-Code:
<div id="autoren"> <a href="#" onclick="showPopWin('addAuthor.html', 500, 500, callBackAuthor);">Autor hinzufügen</a> </div>
HTML-Code:
<input name="vorname" type="text" id="vorname" style="width:256px;" value="Vorname" /> <input name="nachname" type="text" id="nachname" style="width:256px;" value="Nachname" /> <script type="text/javascript"> var returnVal = ''; function setReturnVal() { // vorname + nachname returnVal = 'vorname=' + $('vorname').value + '&nachname=' + $('nachname').value; } </script> <button onclick="setReturnVal();window.top.hidePopWin(true)">Autor hinzufügen</button>
HTML-Code:
function showAuthor(responseText) { values = getParamsArray(responseText); autor = document.createElement('div'); autor.innerHTML = 'Vorname: ' + values['vorname'] + '. Nachname: ' + values['nachname']; $('autoren').appendChild(autor); }
Ich habe lange gesucht, bin aber nicht wirklich fündig geworden und noch nicht ganz zufrieden mit der Arbeit, bzw. denke, dass ich da zwei Kurven zuviel nehme:
1. Brauche ich diese subModal lightbox, oder kann das auch die gone-wild. Weil ich scriptaculous für die autocomplete Funktion benötige würde ich die gone-wild favorisieren, die die ja mit scriptaculous arbeitet und das submodal nicht (ok submodal nutzt auch prototype, sind also in beiden fällen ein script mehr).
2. Kann ich die submodal bzw. die gone-wild lightbox so aufrufen, dass dort Daten angezeigt werden, die ich aus der DB lese? Bzw. geht das ganze sogar einfacher ohne die temporären DB Einträge, also ohne ajax aufruf?
Ich würde das mit dem Bearbeiten eines Autors jetzt so angehen, dass eine "editAuthor.html" Datei gerufen wird, die dann "irgendwie" die ID bekommt und wo beim Laden eine Ajax Funktion gerufen wird, die dann aus der DB Daten ins HTML einpflegt.
Jetzt wüßte ich erst mal gar nicht, wie ich die ID übergeben kann. Müsste ja mit document.URL funktionieren.
Also falls jemand hier eine gute Idee für mich hat, was daran zu kompliziert gedacht ist, freue ich mich über Anregungen für Verbesserungen.
Danke und Gruß
Kommentar