form
Paul
- php
Moin,
in meiner Anwendung (1) öffne ich ein neues Fenster (2).
In (2) gebe ich einen Begriff ein und schicke das Formular mit <form name="xxx" method="post" action="<?php echo $_SERVER['PHP_SELF']?>"> ab.
Die Eingabe wird mit einer DB verglichen. Wenn der Begriff nicht gefunden wurde, wird das in (2) angezeigt und man kann einen neuen Begriff eingeben.
Wenn der Begriff aber gefunden wurde, soll sich (1) neu aufbauen. Also muss ich das Formular in (2) so ändern:
<form name="xxx" method="post" action="(1)" target="???">
Das ist alles kein Problem. Nur wie kann ich von dem neuen Fenster (2) auf das Ursprungsfenster (1) zugreifen und dieses neu laden?
Paul
Hallo Paul.
in meiner Anwendung (1) öffne ich ein neues Fenster (2).
Und wie tust du dies? Per HTML (target-Attribut) oder per JS (window.open)?
Wenn der Begriff aber gefunden wurde, soll sich (1) neu aufbauen. Also muss ich das Formular in (2) so ändern:
<form name="xxx" method="post" action="(1)" target="???">Das ist alles kein Problem. Nur wie kann ich von dem neuen Fenster (2) auf das Ursprungsfenster (1) zugreifen und dieses neu laden?
Ich könnte mir hier höchstens vorstellen, dass bereits bei der Eingabe über XMLHttpRequest ermittelt wird, ob der eingegebene Suchbegriff gefunden wurde. Ist dies der Fall, wird das target-Attribut des Formulares per JS gesetzt, was dann beim Absenden des Formulares zum Tragen kommt.
Eine non-JS-Lösung will mir aber leider nicht einfallen ... (Zumindest keine, bei der man das Formular nicht zwei mal abschicken müsste.)
Einen schönen Mittwoch noch.
Gruß, Mathias
Hallo Mathias,
Und wie tust du dies? Per HTML (target-Attribut) oder per JS (window.open)?
über window.open
... Ist dies der Fall, wird das target-Attribut des Formulares per JS gesetzt, was dann beim Absenden des Formulares zum Tragen kommt.
Genau das will ich. Nur was gebe ich in target="???" ein?
_parent hilft nix. Dann wird (1) trotzdem in (2) geöffnet.
Paul
hi,
... Ist dies der Fall, wird das target-Attribut des Formulares per JS gesetzt, was dann beim Absenden des Formulares zum Tragen kommt.
Genau das will ich. Nur was gebe ich in target="???" ein?
_parent hilft nix. Dann wird (1) trotzdem in (2) geöffnet.
_parent bezieht sich ja auch auf Framessets.
Von einem Popup aus hast du über die window-Instanz opener Zugriff auf das öffnende Fenster. Aber das ist ein Javascript-Objekt, du brauchst aber - für's Zielen mittels target - einen Fensternamen. Wenn das öffnende Fenster noch keinen solchen hat, könntest du also mit opener.name = "xyz" einen solchen vergeben.
gruß,
wahsaga
Spitze! Hat geklappt. Danke!
Paul
Moin nochmal,
das klappt doch nicht so.
Ich will die Seite nicht neu laden und alle meine vorher getätigten "Einstellungen" verlieren.
Ich will nur das Formular der Seite neu abschicken...
Paul
Moin nochmal,
Klappt doch, war nur zu blöd *schäm*
Hallo
Wenn der Begriff aber gefunden wurde, soll sich (1) neu aufbauen. Also muss ich das Formular in (2) so ändern:
<form name="xxx" method="post" action="(1)" target="???">Das ist alles kein Problem. Nur wie kann ich von dem neuen Fenster (2) auf das Ursprungsfenster (1) zugreifen und dieses neu laden?
Das funktioniert nur mit JavaScript. Und auch nur dann, wenn das Fenster (2) ebenfalls mit JavaScript geöffnet wurde. Dann kannst du mit window.opener
auf das Fenster (1) zugreifen.
Bedenke aber, dass JavaScript beim Benutzer nicht zur Verfügung stehen kann und dass die meisten Browser das Öffnen eines Popups verhindern können. Eventuell ist das Überdenken des Konzepts angesagt.
Tschö, Auge