Zum Inhalt springen

[JavaScript] Select-Box dynamisch erweitern aus anderem Fenster


FinalFantasy

Empfohlene Beiträge

Hi,

Ich habe hier ein kleines Problem:

Ich habe in einem Window eine Select-Box, die Options enthält, die ich aus eine Datenbank hole.

Über einen Button kann man ein zweites Fenster aufmachen.

In dem zweiten Fenster kann man dann einen Text eingeben. Wird die Form abgeschickt, wird der Text in die Datenbank geschrieben.

Wurde der Text erfolgreich in die DB geschrieben, soll der Text auch als Auswahl in die Select-Box des ersten Windows aufgenommen werden.

Ich habe bereits die Möglichkeit versucht

opener.document.form.feld.options[opener.document.form.feld.options.length] = new Option('blabla', 'blabla');

Allerdings hab ich nach ewigem rumprobieren rausgefunden, dass genau diese Lösung nicht funktioniert, wenn man es von einem anderen Window aus machen will.

Hat jemand ne Idee, wie man das lösen könnte?

Die einfachste wäre natürlich, die Seite im ersten Window einfach neu zu Laden, nur da diese einige Select-Boxen und Eingabefelder enthält, würden sämtliche gefüllten Felder verloren gehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

das liegt daran, dass du in anderen Frames mit Javascript nur leserechte hast....

bei Netscape gibts dafür die Funktion document.importNode


if(!document.importNode){

    document._importNode = function(oNode, bImportChildren){

        var oNew;

        if(oNode.disabled)

            oNode.disabled = false;

        if(oNode.nodeType == 1){

            oNew = document.createElement(oNode.nodeName);

            for(var i = 0; i < oNode.attributes.length; i++){

                if(oNode.attributes[i].value != null && oNode.attributes[i].value != '')

                {

                    alert(oNode.nodeName + '.' + oNode.attributes[i].name + " -> " + oNode.attributes[i].value);

                    oNew.setAttribute(oNode.attributes[i].name, oNode.attributes[i].value);

                }

            }

            oNew.style.cssText = oNode.style.cssText;

        } else if(oNode.nodeType == 3){

            oNew = document.createTextNode(oNode.nodeValue);

        }


        if(bImportChildren && oNode.hasChildNodes()){

            for(var oChild = oNode.firstChild; oChild; oChild = oChild.nextSibling){

                oNew.appendChild(document._importNode(oChild, true));

            }

        }


        return oNew;

    }

}

quelle: http://tek-tips.com/viewthread.cfm?qid=906034

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die einfachste wäre natürlich, die Seite im ersten Window einfach neu zu Laden, nur da diese einige Select-Boxen und Eingabefelder enthält, würden sämtliche gefüllten Felder verloren gehen.

Du must ja nicht gleich refreshen. Es reicht, doch wenn du das Formular abschickst. Dann kannst du die Werte auch wieder setzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...