Übergeben von Formulardaten ohne Absenden

BenschM@ster

Mitglied
Hi,
folgendes Problem habe ich:
Ein Formular in dem der User ein Bild hochladen kann. Auf der Seite nach dem Absenden des Formulars kann der User die Daten überprüfen, und gegebenfalls die Daten korrigieren, dann gelangt er zurück in das Formular. Hier bekommt er dann allerdings in den Formularfeldern die bereits eingegebenen Daten, die in Session-Arrays gespeichert wurden, angezeigt. Außerdem sieht er das hochgeladene Bild.
Zusätzlich kann der Benutzer eine PDF-File hochladen, hier das gleiche Spiel, beim korrigieren sieht er nun ein "ok"-Symbol, und ein "löschen"-Symbol um die File wieder zu löschen.

Wie kann ich nun die Session Variable löschen in der der Dateiname der PDF-File gepseichert ist, ohne, dass die Formulardaten verloren gehen?
Natürlich könnte ich per Javascript das Formular absenden, die Daten aus dem Formular dann wieder in Session-Variablen speichern um sie dann wieder aufzurufen.
Allerdings müsste mein Script dafür irgendwie unterscheiden können, ob das Formular mittels Javascript, oder mittels des eigentlichen Formularbuttons abgesendet wurde.

Geht dies? Oder gibts es eine viel bessere Methode?

Gruß,
Ben
 
Hi,

ich weiß nicht ob ich dein Problem richtig verstanden habe. Also an deiner Stelle würde ich alle Formulardaten in einem Array speichern, das du dann in die Session schreibst. Wenn du den Pfad ändern willst, dann holst du dir das Array aus der Session und änderst den Wert der in dem Array steht und schreibst es wieder in die Session.
Wenn du willst, dass das Bild gleich angezeigt wird, sobald du eins ausgewählt hast, kannst du das mit Ajax und Javascript lösen.

Gruß kantonix
 
Das mit dem Array habe ich auch gemacht.

Sobald aber die Seite aufgerufen wird, sollen das Formular natürlich leer sein, es sei denn es wurde der Button "korrigieren" gedrückt.
Oder es wurde die Seite mit dem "löschen" Button geladen.

Jetzt muss der Script natürlich erkennen ob das Formular mit dem Löschen Button oder dem "Absenden" Button abgesendet wurde.
Beim Absenden Button würde sich nämlich die Kontrollseite öffnen, beim Löschen-Button würde sich das Formular erneut öffnen, nun aber ohne PDF-Datei.
 
Mal das ganze sinngemäß als Code ;)

PHP:
<form action="$_SERVER['PHP_SELF']" method="post" name="formular">
<input type="text" name="feld1" value="$_SESSION['feld1']">
if($_SESSION['pdf_file'] != "") {
 echo '<img src="ok.gif"><a href="javascript:document.formular.submit();"><img src="erase.gif"></a>
}
<input type="submit" name="checken">
</form>

Das wäre so sinngemäß der Code, folgend auf der Seite käme dann natürlich
PHP:
if(isset($_POST['feld1'])) {
 --> Daten überprüfen
}

Oder aber, wenn das Formular per Javascript gesendet wurde:

PHP:
if(........) {
 unset($_SESSION['pdf_file']);
 $_SESSION['feld1'] = $_POST['feld1'];
}

Und was die letzte Bedingung ist suche ich im Prinzip. Eine Möglichkeit zu unterscheiden wie das Formular abgesendet wurde.

PS: Der Code funktioniert so jetzt natürlich nicht, ist so mal frei und sinngemäß hier hingetippselt. Hab mir mal das ganze echo Zeugs gespart.
 
Zurück