• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Durch Funktion aufgerufenes Formular verschwindet

Status
Für weitere Antworten geschlossen.

mango10

Neues Mitglied
Hallo!

Mein Problem ist folgendes: Ich rufe eine Funktion auf und in dieser befindet sich ein kleines Formular (ein Drop-Down-Menü und ein Senden-Button). Sobald ich beim Drop-Down-Menü dann was auswähle und auf "Senden" drücke, wird zwar das "Ergebnis" angezeigt, das Formular verschwindet aber. Wie kann ich das anstellen, dass dieses sichtbar bleibt?

LG
 
Na, du rufst ja eine andere Seite auf durch dein Form. Die Seite ist im action-Attribut angegeben. Dann musst du entweder auf die gleiche Seite leiten und dort unter dem Formular das Ergebnis ausgeben oder du baust das Formular auf der 2ten Seite auch ein.
 
Also mein action-Attribut sieht so aus:

PHP:
action="<?php echo($_SERVER["PHP_SELF"])

also ich habe Formular + Ergebnis sowieso auf einer Seite nebeneinander!

Aber das Formular verschwindet halt leider, sobald der Button betätigt worden ist... Ich schätze, weil es ja nur in diesem Funktionsaufruf enthalten ist. Also die Lösung wäre, das Formular "nachzubauen", hab ich das richtig verstanden?
 
Aber das Formular verschwindet halt leider, sobald der Button betätigt worden ist... Ich schätze, weil es ja nur in diesem Funktionsaufruf enthalten ist.
Nein. Es verschwindet, weil durch Anklicken des Submit-Buttons eine neue Seite geladen wird.

Du musst bedenken, dass PHP serverseitig abläuft. Wenn die Seite im Browser angezeigt wird, gibt es keine Funktionen mehr, nur noch HTML. Der Browser weiß nichts davon und durch das Submit ruft er sich die Seite erneut vom Server ab. Dann kann PHP anders darauf reagieren und einen anderen Inhalt anzeigen.

Wenn Du dann das Formular wieder angezeigt haben willst, musst Du es erneut ausgeben.
Wenn Du nicht willst, dass eine neue Seite geladen wird, musst Du alle Möglichkeiten in die HTML-Seite packen und das per JavaScript steuern, was natürlich die üblichen Nachteile einer abschaltbaren Sprache mit sich bringt. Eine Alternative wäre vielleicht Ajax, wo die Seite stehen bleibt, gleichzeitig eine asnychrone Verbindung zum Server aufgebaut wird und Du die Antwort, sobald sie dann kommt, in Deine bestehende Seite einbauen kannst. Ich würde wetten, dass das Antworten hier im Forum mit dem normalen Editor per Ajax gelöst ist, weil man da schön sieht, dass die Seite nicht neu geladen wird. Ajax hat aber den selben Nachteil, weil Ajax serverseitig zwar mit PHP, aber clientseitig mit JavaScript gelöst ist.

Gruß,
-Efchen
 
Wow danke für deine Erklärungen! :)

Hab es jetzt so gelöst, dass beide Formulare von Beginn an gleichzeitig gezeigt werden, da mir der Aufwand für eine andere Lösung bei meinem Programmierwissensstand einfach zu hoch ist :(
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben