Popup sendet nichts an Aufruffenster zurück

netzmann

Grünschnabel
Hallo liebe tutorials.de Gemeinde,

ich bin neu hier und kann offensichtlich nicht (mehr) mit JavaScript umgehen. Vielleicht liegt es auch an FF3, der bei mir mit verschiedenen JS-Sachen rumzickt. Doch auch mit Safari (Windows) geht es nicht so, wei ich will.

Klassischer Fall, Hauptseite ruft Popup auf, in dem - datenbankgeneriert - die zur Wahl stehenden Daten zur Administration (Änderung eines Datensatzes bzgl. Kunde oder Hersteller) mit input type button akzeptiert (geklickt), an die aufrufende Seite an entsprechender Stelle übertragen (JavaScript) werden sollen. Und im Anschluß soll sich das kleine Popup selbst schließen (self.close).

Weder wird etwas an die Hauptseite geschickt - zumindest ist es nicht sichtbar. Noch schließt sich das Popup nach Abarbeitung. Was kann ich machen, um herauszufinden, WO der Haken ist? Hatte schon verschiedene Foren - auch tutorials.de - untersucht, ob was zu finden ist. Hilft mir alles nicht weiter.

Versuchte schon verschiedene Pfadangaben zur Urseite wie zuletzt

window.opener.myForm.vorn.value=vn;

wobei myForm der Formularname auf der aufrufenden Siete und vorn eine Variable für den Vornamen darstellt; vn ist der Aufrufname innerhalb der Funktion.

Wer kann mir behilflich sein? Habe den Eindruck, daß FF3 schadhaft ist und doch geht es auch mit IE und Safari nicht.

Eines noch: die Zielvariablen sind Textfelder im Formular.

Vielen Dank für Eure Hilfe
 
Hi,

es fehlt ein document.
Code:
opener.document.myForm.vorn.value=vn;
Das Fenster sollte sich mit
Code:
self.close();
schliessen lassen.

Ciao
Quaese
 
Vielen Dank Quaese,

für Deine schnelle Hilfe. Aus irgendeinem Grund paßt es auch nicht. Was kann im Browser (derzeit funktioniert am ehesten in Hinblick auf JavaScript der Safari) getan werden, um JS laufen zu lassen? War der Meinung, JS allgemein zuzulassen.

Ich bin schon so lange da dran, daß es mich schon richtig ärgert, damit nicht endlich mal wieder etwas weiter zu kommen.

self.close mit der Klammer () hintendran hatte ich schon so, Danke. Vermutlich hat das JS irgendwo Fehler und wird deshalb nicht ausgeführt

Vielen Dank im voraus, netzmann
 
Hi,

folgende Dokumentkombination funktioniert bei mir wie von dir gefordert.

Aufrufendes Dokument:
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<button onclick="window.open('popup.html');">PopUp</button>
<form name="myForm" method="get" action="">
  <input type="text" name="vorn" value="">
</form>
</body>
</html>

PopUp (popup.html):
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
function sendBack(){
  opener.document.myForm.vorn.value = document.getElementById("txtBack").value;
  self.close();
}
 //-->
</script>
</head>
<body>
<input type="text" id="txtBack" value="Wert">
<button onclick="sendBack();">sendBack</button>
</body>
</html>

Ciao
Quaese
 
Hallo liebe(r) Quaese,

ich habe das von Dir erhaltene HTML-Skript genommen und es geht. Vielen Dank. Doch das echte Problem geht nun erst los, da Daten von einer DB ausgelesen werden. Es gibt also mehr als eine Option auf "den" richtigen Wert bzw. auf "die" richtigen Werte.

Und mit dem so abgewandelten Skript:

HTML:
<script type="text/javascript">
  <!--
function sendBack(nummer){
  opener.document.myForm.vorn.value = document.getElementById("vornBack[nummer]").value;
  opener.document.myForm.nachn.value = document.getElementById("nachnBack[nummer]").value;
  opener.document.myForm.id.value = document.getElementById("idBack[nummer]").value;
  self.close();
}
 //-->
</script>
</head>
<body>
1
<input type="text" id="vornBack[1]" value="Vorname">
<input type="text" id="nachnBack[1]" value="Nachname">
<input type="text" id="idBack[1]" value="ID">
<button onclick="sendBack(1);">sendBack</button>
<br>
2
<input type="text" id="vornBack[2]" value="Vorname">
<input type="text" id="nachnBack[2]" value="Nachname">
<input type="text" id="idBack[2]" value="ID">
<button onclick="sendBack(2);">sendBack</button>
<br>

in der Popup-Datei funktioniert die Übergabe des richtigen Wertes dann doch wieder nicht...

Wenn ich der zweiten Wertegruppe den Vorrang gebe kommt gar nichts an. Vermutlich ebenso bei allen anderen gedrückten Submit-Knöpfen. In der aufrufenden Datei habe ich nichts abgewandelt. Es soll dort nur einer der gefundenen (beliebig vielen) Datensätze einkopiert werden.

Muß ich den Buttons noch "names" geben und diese auch als Array anordnen, damit es geht? Immerhin heißen die (value) jetzt alle gleich.

Vielen Dank für Deine bzw. für Eure Antworten.

Gruß, netzmann
 
Hi,

du musst die IDs der Inputfelder als String zusammensetzen.
Code:
function sendBack(nummer){
  opener.document.myForm.vorn.value = document.getElementById("vornBack["+nummer+"]").value;
  opener.document.myForm.nachn.value = document.getElementById("nachnBack["+nummer+"]").value;
  opener.document.myForm.id.value = document.getElementById("idBack["+nummer+"]").value;
  self.close();
}

Ciao
Quaese
 

Neue Beiträge

Zurück