Beim Aktualisieren eines Formulars...
Ramy
- javascript
Hallo Miteinander,
Ich bin seit einiger Tagen auf der Suche nach einer Lösung für die folgende Situation.
Ich habe einen Formular, welches in einem Frame eingebetet ist. Ich möchte die bereit ausgefüllten Felder beim Aktualisieren des Formulars nicht verloren gehen.
das Script sieht wie folgt aus:
------------------------------
<script language="JavaScript"><!--
function loadData() {
opener.top.mainFrame.document.person.inp_LastName.value = opener.top.mainFrame.document.person.inp_LastName.value;
}
function loadFile(file) {
opener.top.mainFrame.window.location.href = file;
}
//--></script>
------------------------------
Die LoadData() funktioniert soweit, wenn ich die LoadFile() Funktion ausschalte.
Wenn beide Funktionen eingeschaltet sind, dann werden beide Funktionen ausgeführt. Aber LoadData() zeigt mir nur kurz die Daten im angegebenen Feld und löscht sich danach. Das heisst das Feld bleibt leer.
Meine Frage: Wie kann ich den Browser dazu bringen, beim aktualisieren des Formulars, dass die Daten in den Felder nicht gelöscht werden.
Ich danke für jeden Hinweis und Tipp
Gruss
Ramy
Hallo,
meines Wissens behält nur Gecko die Daten.
Das richtige Verhalten eines Browsers ist, beim initialisieren des Dokuments (Was ein Reload ist) die Formularfelder auf Ihren initialisierungs Status zu setzen. (value)
ist dieser Blank, ist das Formularfeld leer.
Gruß
Phil
Hi Phil,
Die Felder werden von Benutzer ausgefüllt. Das Formular enthält ein Select option. Der Benutzer seinerseits kann die Select option beliebig erweitern. In dem auf einen Link geklickt wird und öffnet sich ein Popup-Fenster. Im Popup-Fenster kann der Benutzer die Select option erweitern (Daten in der Datenbank hinzufügen).
Ich möchte wenn der Benutzer seiner Daten im Popup-Fenster eingefügt hat, dann aktualisiert sich das Frame-Dokument(In diesem Fall das Formular), damit die im Select option die neu eingefügte Informationen angezeigt werden und gleich zeitig will ich verhindern, das Formular, die bereit eingegebenen Daten nicht verloren gehen.
Ich hoffe, es ist verständlich was ich da beschrieben habe. Falls nicht sag es mir bitte bescheid.
Ich danke dir
Gruss
Ramy
Hi Ramy,
mir ist klar, was du willst, aber
es geht nicht, wenn der User F5 drückt, du kannst höchstens mit Frames arbeiten, die Daten in einem Frame zwischenspeichern, während der andere von dir refreshed wird. Dabei solltest du dir aber zu einen Gedanken machen, welche Vor- aber vorallem welche Nachteile Frames haben, und ob du da nicht lieber auf eine Serverseitige Sprache ausweichst, und dir die Vorzüge eine Session zunutze machst.
Im schlimmsten Fall, kannst du diese Daten auch in einem Cookie speichern, wenn serverseitig nichts zur Auswahl steht ;-)
Gruß
Phil
Hi Phil,
Vielen Dank für deine Vorschläge. Ich habe das problem gelöst.
Indem ich mit dem PHP-Befehl flush() und danach mit sleep() Funktionen gearbeitet habe.
Gruss Ramy
.
...
var inp_ContWWWJS = opener.top.mainFrame.document.person.inp_ContWWW.value;
opener.top.mainFrame.window.location.href = '$href_rfile';
//--></script>
HTMLCODE;
flush();
sleep(1);
print <<<HTMLCODE
<script language="JavaScript "><!--
opener.top.mainFrame.document.person.inp_ContWWW.value = inp_ContWW
WJS;
...
.