variablen aus iframe an parent.window übergeben+submit+close
matthias der unwissende
- javascript
hallo allseits,
ich kenne mich mit php/html aus, mit js quasi gar nicht. ich schreibe gerade an einer erweiterung für joomla, wo ziemlich viel js zum einsatz kommt. was ich tun muss/möchte ist folgendes: in einem formular in der normalen seite kann man über einen button ein iframe öffnen, in dem dann eine eigene php-seite läuft (quasi eigenständigs script). in diesem iframe werden bilder nach einem ganz bestimmten muster nachbearbeitet, nachdem man alle eingaben gemacht hat, erledigt das php-script alles, die neuen bilddateien werden auch am server abgespeichert.
soweit so gut. nun will ich aber, dass der pfad des bildes, zB "images/abgespeichertesbild.jpg" vom iframe auch an das parent.window übergeben wird und dort in ein bestimmtes input-feld gelangt, damit es dort erfasst und weiterverarbeitet werden kann. noch schöner - als draufgabe - wäre, wenn dann dieses bild auch gleich automatisch geladen und eingeblendet werden würde. ich vermute mal, dass es über update laufen müsste?
auch besonders schön wäre, wenn man das submit (läuft im moment über standard-button ohne js) des iframes, mit dem die bilder bearbeitet und gleichzeitig gespeichert werden, kombinieren könnte mit dem übertragen der variablen und dem automatischen schließen des iframes - also ein button-klick für abspeichern.variablen-übertragen.schließen. das hatte ich schon mal zusammengebastelt:
document.getElementById('bildform').submit().window.parent.document.getElementById('sbox-window').close()
allerdings hat es nicht funktioniert - fenster wurde geschlossen, aber das formular nicht submittet ... aber offenbar kann man irgendwie mehrere befehle mit einem klicks ausführen, sagt mir meine detektivische ader :)
es wäre schön, wenn mir jemand ein bisschen helfen könnte mit dem code, den ich für soetwas brauche. weil leider komm ich nicht darum herum und kann schwer jetzt eine halbe ewigkeit an zeit investieren um js zu lernen :)
Das ist nicht ganz leicht einfach so zu beantworten, aber vielleicht geht das:
Aus dem iframe Zugriff per window.opener
var mein_pfad = "images/abgespeichertesbild.jpg"; // irgendwie zugewiesen
window.opener.forms[0].feldname_fuer_pfad.value = mein_pfad;
forms[0] greift auf das erste Formular im iframe zu und feldname_fuer_pfad in der Input-Name des Wertziel-Felds im parent window.
Den Code legst du zum Submit-Event des Formulars im iframe.
Wenn das Formular abschickt wurde und die Ergebnisseite im iframe zu sehen ist, so sollte die im HTML-Code <script type="text/javascript">window.close();</script> enthalten damit das Fenster geschlossen wird.
danke für den gedanken-anstoß. ich wollte aus einem iframe an das window, von dem es geöffnet wurde, eine variable übergeben (string).
hab es so gelöst, das andere ging nicht
function img_senden() {
var newfile_name = document.getElementById('newfile_name').value;
var filename = 'images/stories/'+ newfile_name;
window.parent.document.adminForm.news_pic_str.value=filename;
window.parent.document.getElementById('news_pic').src =filename;
window.parent.document.getElementById('sbox-window').close();
};
im iframe gibt es
im window kommt es
wird aufgerufen über button onclick.
geht vielleicht noch hübscher, ist aber nun genauso, wie ich es wollte :)