Homepage selbermachen 7.846 Themen, 35.563 Beiträge

automatisierte Formulardatenübergabe

Timeout / 2 Antworten / Flachansicht Nickles

Ich habe folgendes Problem. Ich habe ein Formular und das Ergebnis ist eine Liste aus einer Datenbank mit Buttons zum Löschen von Elementen. Wenn ich nun einen Löschbutton in dieser Lste klicke, wird dieser Datensatz aus der Datenbank gelöscht und die Liste mit "opener.reload" erneut angezeigt. Nun fragt mich aber der IE, ob die Daten aus dem Formular erneut gesendet werden sollen. Wenn ich dann auch "Wiederholen" klicken kommt wieder meine Liste.


Kann man diese "Wiederholen"-Abfrage übergehen und die Seite erneut laden ohne dem Dialogfeld?

bei Antwort benachrichtigen
philipps Timeout „automatisierte Formulardatenübergabe“
Optionen

Hi timeout!

Mit der JavaScript Anweisung "opener.reload()" wird dem Browser mitgeteilt die derzeit aufgerufene Webseite im Calling-Window erneut zu laden. Da Du zu dem Zeitpunkt aber eine von einem Skript generierte Seite angezeigt hast (=die Seite mit den Einträgen aus der Datenbank, nehme ich an) und diese Seite vorher mit einem POST request angezeigt wurde, fragt der Browser ob er die Formularvariablen erneut (also nochmal) an das Skript übermitteln soll. Es werden also effektiv beim übermitteln der Variablen die ALTEN Werte übermittelt.

Versuch mal im Formular statt method="post", method="get" zu verwenden und im Skript natürlich dann die Variablen aus GET und nicht aus POST zu holen. Ich vermute aber dieses alleine wird Dein Problem nicht lösen.

Wie gibst Du denn an, welches Element aus der Datenbank gelöscht wird?? Richtig wäre, eine Variable (wie z.B. den Primärschlüssel-Wert des jeweiligen Datensatzes) als Variable anzuhängen. So könntest Du zu jedem Element in der Liste eine URL haben wie z.B.

http://localhost/dbElemente.php?aktion=loeschen&elementID=1
(hier wird der Datensatz mit Primärschlüsselwert 1 gelöscht und die aktualisierte Seite angezeigt)

oder

http://localhost/dbElemente.php?aktion=zeigen
(hier wird einfach die Liste angezeigt).

Hoffe das hilft Dir weiter....
(hier werden die

bei Antwort benachrichtigen