Formulardaten ins andere Fenster übergeben

pl_90

Angesehenes Mitglied
Hou...
Ok, JavaScript ist nicht mein Ding und das kann man nur mit JavaScript lösen...
Also ich möchte die Formulardaten ins Hauptfenster von wo ich das Formularfenster geöffnet habe übergeben...

Also, ausführlich.
1. Ich habe meine Seite geöffnet, die Seite X.
2. Auf/Von der Seite X öffne ich ein PopUp-Fenster namens Y wo das Formular ist.
3. Das Formular wird auf der PopUp-Seite Y abgeschickt und die Formulardaten sollen zu der Seite X geschickt werden.
4. Die PopUp-Seite Y schließt sich.

Wie kann man den so etwas machen?

Danke schon mal im Voraus...
 
Ja.. liegt sogar im gleichen Ordner... nur irgendwie hab ich dazu keine Idee...
 
cool.gif


Nehmen wir mal an, dein Hauptfenster hat den Namen "X".
Nehmen wir mal an, dein Formular im Popup "Y" enthält die Angabe target="X".

Das müsste eigentlich ähnlich normalen, anklickbaren Links funktionieren, die man im Hauptfenster öffnen kann.
rolleyes.gif
 
emm.. ne... hat du verstanden worum es geht?
wink.gif
ich denke nicht...
wink.gif

PopUp Y soll Formulardaten zu (Haupt)fenster X senden und sich dann schließen..
wink.gif
 
Du könntest beim Absenden des Formulars die Daten in einer Session speichern, in X die gewünschte Site aufrufen und anschliessend Y schliessen.
 
Wozu so umständlich, wenn das schon so ist? - Lass doch die Ursprungsseite die Daten bearbeiten...



Auf die Fenster wirst Du wohl mit

parent.name.document (klappt zumindestens bei einem Frameset)
oder
window.name.document

mittels JavaScript ansprechen können.
 
Hi... hmm wie soll ich des dann machen...?
Das Formular muss unbeding in ein PopUp Fenster sein und die Daten sollen zu der Hauptseite X übergeben werden und dort verarbeitet werden, nach dem Senden soll sich das PopUp automatisch schliessen.. hm...
Wie soll ich das machen?
 
QUOTE (pl_90 @ Mi 1.08.2007, 23:35)Hi... hmm wie soll ich des dann machen...?
Das Formular muss unbeding in ein PopUp Fenster sein und die Daten sollen zu der Hauptseite X übergeben werden und dort verarbeitet werden, nach dem Senden soll sich das PopUp automatisch schliessen.. hm...
Wie soll ich das machen?

Ich habe das nun anderesrum verstanden, aber trotzdem: wozu? PopUps sind doch mittelweile nicht mehr wirklich aktuell, aber das was Du erzählst, macht man auch wieder anders.

Die Ansteuerung lautet dann so, vorausgesetzt das PopUp wurde vom anderen Fenster geöffnet:

CODE opener.document.forms['name'].name.value = 'me';


(seihe: http://de.selfhtml.org/javascript/objekte/...htm#allgemeines)


Nur warum möchte man ein PopUp öffnen, wenn eh die Daten sofort abgeschickt werden?
 
hmm daten seite a zu seite b ???

seitea:

<?php

session_start();
$_session[$sid] =session_id();
$_session[$HTTP_REFERER]=getenv('HTTP_REFERER');
$_session[$ip] =getenv('REMOTE_ADDR');
$_session[$host]=gethostbyaddr($_SERVER['REMOTE_ADDR']);

$_session[$time]=time();
$_session[$name]='admin';
$_session[$pass]='admin';
$_session[$md5]=MD5($name.$pass);
?>

seiteb:
<?php

session_start();
echo $_session[$sid];
echo $_session[$HTTP_REFERER];
echo $_session[$ip];
echo $_session[$host];

echo $_session[$time];
echo $_session[$name];
echo $_session[$pass];
echo $_session[$md5];
?>

so in etwa ???
 
Ne.. Leider nicht...
Hm... die Daten sollen direkt in der Hauptseite X verarbeitet werden, sobald das Formular im PopUp zu Haptseite X geschickt wurden... Irgendwie so.. ich weiß selber nicht wie ich es erklären soll
biggrin.gif


Ich hab Euch ein Bild gemacht, damit wird es vielleicht verständlicher...
biggrin.gif

http://www.bilder-upload.eu/show.php?file=...vuHkJQ2u2Ft.png


Nochmals Danke vielmals für eure Mühe...
 
QUOTE (pl_90 @ Mi 1.08.2007, 22:27) emm.. ne... hat du verstanden worum es geht?
wink.gif
ich denke nicht...
wink.gif

PopUp Y soll Formulardaten zu (Haupt)fenster X senden und sich dann schließen..
wink.gif


Dem ist so nicht ganz richtig.
tongue.gif

Denn ich habe dich schon sehr wohl verstanden.

Ganz nebenbei funktioniert es fabelhaft nach dieser Methode.
wink.gif



PS: Gern geschehen.

index.php

CODE
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>hauptseite</title>
<script type="text/javascript">
window.name='Hauptseite';
function openwin(url) {
win=window.open(url, "popup", "width=300,height=400,left=100,top=200");
win.focus();
}
</script>
</head>
<body>
<p><a href="popup.html" onclick="openwin(this.href); return false">Fenster öffnen</a></p>
<?php
print_r($_POST);
?></body>
</html>




popup.html

CODE
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>das popup</title>
</head>
<body>
<form id="form" name="form" method="post" action="index.php" target="Hauptseite" onsubmit="window.close()">
<input type="text" name="input">
<input type="submit" name="submit" value="senden">
</form>
</body>
</html>

 
Nein.. Doch nicht so... Ich weiß es doch.. ich bin nicht blöd.. du kannst die Formulardaten sogar nach USA schicken..
biggrin.gif

Das was ich meine ist irgendwie kompliziert zu erklären... also die Hauptseite X soll sich so verhalten, als dort ein Formular verarbeitet wäre....- oder wenn es nicht geht, dann weigstens so, dass nach dem Abschicken von PopUp Y soll sich die Hauptseite X automatisch aktualisieren.. Geht das so?

Nochmals vielen vielen Dank für alles!
smile.gif
 
QUOTE (pl_90 @ Do 2.08.2007, 17:59) Das was ich meine ist irgendwie kompliziert zu erklären... also die Hauptseite X soll sich so verhalten, als dort ein Formular verarbeitet wäre....- oder wenn es nicht geht, dann weigstens so, dass nach dem Abschicken von PopUp Y soll sich die Hauptseite X automatisch aktualisieren.. Geht das so?

Ich wüsste nicht, dass es eine Funktion gibt, mit der man Formulardaten in einem fremden/übergeordneten Fenster submitten könnte. Rein theoretisch dürfte es aber gehen, indem man einen Button einfügt und eine JavaScript-Funktion damit verbindet, die die eingegebenen Daten aus dem Formular ausliest, eine passende URL mit Variablen generiert und dann das übergeordnete Fenster auf diese URL umstellt per location.href. Danach müsste dann nur noch das Formular-Fenster geschlossen werden. Das ganze funktioniert dann aber nur über GET-Variablen.

Eine Lösung ganz ohne Popup wäre wohl vorzuziehen. Zum einen weil es technisch einfacher wäre, zum anderen weil Popups hässlich sind, häufig geblockt werden und - falls sie mal nicht geblockt werden - schließen viele sie sofort. Außerdem hat man wieder Ladezeit bis das Popup eingeblendet wird und eine weitere Mini-Datei auf dem Webspace.

Einfacher wäre es wohl ein Div und CSS zu verwenden. Das div könnte man dann per Funktion ein- oder ausblenden und - falls man das will - per position:absolute wie ein Popup designen (das aber nicht wirklich eins ist). Dadurch dass das div in der selben Seite wäre, würde das Formular korrekt senden.


CODE
Text Text
<a href="#" onClick="document.getElementById('popup').display='block';">Formular anzeigen</a>
Text Text

<div id="popup" style="display:none; position:absolute; top:50%; left:50%; margin-left:-200px; margin-top:-150px; width:400px; height:300px; border:2px solid #000000;">

formular hier

<a href="#" onClick="document.getElementById('popup').display='none';">Formulr schließen</a>
</div>



Ist jetzt nur schnell getippt und vor allem was das Design angeht natürlich schlecht. Sollte aber so ungefährt funktionieren.
 
Sollte ein PopUp verwendet werden, könnte man die Formulardaten mit Javascript auslesen und mit "window.opener" an das Elternfenster übergeben und dort weiterverarbeiten.

wichtls Ansatz gefällt mir aber besser ;-)
 
Hi...
Danke.. Das hatte ich auch schon, aber bei mir ist das so, dass ich dort Links habe, und jeder Link hat eigene ID
und deswegen muss das alles ins PopUp, oder kann man auch mit JavaScript bei onclick den Formular eine ID des angeklicktes Linkes zuweisen?
 
QUOTE (pl_90 @ Do 2.08.2007, 19:25) Hi...
Danke.. Das hatte ich auch schon, aber bei mir ist das so, dass ich dort Links habe, und jeder Link hat eigene ID
und deswegen muss das alles ins PopUp, oder kann man auch mit JavaScript bei onclick den Formular eine ID des angeklicktes Linkes zuweisen?

Hm.. beschreib mal das Problem genauer. Wenn es nur darum geht, dass das Formular in einem Feld eine bestimmte ID haben soll, dann kann man die recht einfach ändern über

CODE
function setze_id(id_nr) {
var input_id = 'ein_input';
document.getElementById(input_id).value = id_nr;
}


dann das zugehörige input dazu:

CODE
<input type="hidden" id="ein_input" name="id_nummer" value="" />



Ein Link könnte dann so aussehen:

CODE
<a href="#" onClick="setze_id('1234'); document.getElementById('popup').display='block';">Produkt Nummer 1234</a>

 
neee.... diese funktion kenn ich schon... das ist nicht gemeint...
Das ganze Ding ist kompliziert dewegen wie gesagt ein PopUp nötig...
Duch eine ID werden dann mit PHP meherer Dinge aufgeruffen und überhaupt = POPUP nötig
Kann man auch die Seite X automatisch auktualisieren lassen, nachdem das Formular bei PopUp Y gesendet wurde.. das kann auch sein...
smile.gif
Nochmals vielen Dank...
 
Abschicken mit JavaScript sollte, wenn überhaupt, nur funktionieren von einen Fenster ins andere, wenn beide von der gleichen Domain kommen, sonst nicht. Wie erwähnt kann das window.opener Objekt dazu verwendet werden.

Bei einer genaueren Beschreibung (wieso, weshalb, wozu, warum soll das so gemacht werden und was für eine Art Aufgabe soll es dass erledigen), könnte man wohl Alternativ Lösung nennen. Ich würde Dir aber wohl als Alternativ ein Layer vorschlagen, der sich öffnen und innerhalb der Seite sich verschieben lässt (das PopUp-Fenster kann damit halt bis zu einen gewissen Grad simuliert werden). Das Formular würde sich zumit auf der gleichen Seite befinden und kann ganz normal mittels PHP abgearbeitet werden, einzigstes JavaScript-getrickse ist halt der Layer, denn man bei abgeschaltet JavaScript auch irgendwo direkt verfügbar machen könnte.
 
Zurück
Oben