ich arbeite immer noch an meinem formular.php-Seite - ich habe hier eine Formularseite und eine send.ph-Seite
Also auf der formular.php-Seite gibt mein seine Daten an und wählt noch über Radio-Buttons diverse andere Sachen aus, diese übergibt er mit dann alle in die send.php-Seite.
Auf dieser send.php-Seite sind die ganzen Daten mitsamt der Auswertungen der Radio-Butttons aufgeführt und er kann, wenn was nicht passt auf korrigieren gehen und er springt dann back zur formular.php-Seite.
So und hier ist mein Problem.
Die Daten die alle mit $_POST[asdfsdf] in die send.php übergeben werden, sind dann ja aus der formular.php weg. Wie stelle ich es an das er mit die Daten dann wieder in die ursprünglichen Text-Felder und Radio-Buttons reintüttet?
Würde das über SESSION gehen? Habe ich schon versucht, leider ohne Fehlermdelung bleiben die Felder dann trotzdem leer.
Oder soll ich die Daten in der formular.ph „speichern“, also quasi bestehen lassen?
Habt ihr ne Idee wie ich das lösen könnte?
Vielen Dank schon mal
Das sind jetzt stark gekürzte Fassungen (vor allem die FORM-Definition), aber grundsätzlich reicht das schon aus, um zu verstehen, wie das funktioniert. Du musst erstmal die Session starten und dann würde ich in einem Key die Werte von $_POST speichern (siehe send.php). Wenn du dann formular.php erneut aufrufst, werden die Werte für dein Formular automatisch aus der Session gelesen. Rufst du das Script zum ersten Mal auf, ist in der Session nichts drin, also wird es auch keine vordefinierten Werte geben. Eine kurze Anmerkung: Wenn du E_WARNINGS angezeigt bekommst, wird dir das einige „Fehler“ ausspucken beim ersten Aufruf, weil alle Elemente im Array nicht vorhanden sind. Diese können aber ignoriert werden. Wenn du E_WARNING nicht abschalten willst (im Produktiv-System später), dann müsstest du einmal prüfen, ob das Array vorhanden ist und wenn nicht, dann ein leeres Array mit allen Feldern vorher definieren.
Wenn du dann die Verarbeitung der Daten abgeschlossen hast, kannst du einfach ein unset($_SESSION[‚formular‘]); (nach vorherigem session_start(); !) die Daten wieder löschen.
Ich hoffe, dass dir das ein wenig hilft und dass das Radio-Beispiel dich nicht aus der Bahn wirft, aber da du explizit RADIO-Buttons angesprochen hast, dachte ich wäre ein Beispiel diesbezüglich sinnvoll.
Auf dieser send.php-Seite sind die ganzen Daten mitsamt der
Auswertungen der Radio-Butttons aufgeführt
Aufgeführt - aber wo sind sie gespeichert? In irgendeiner Form von Datenbank, nehme ich an. Wenn Du also Datensätze wieder editieren willst, rufst Du einfach über einen Link die formular.php auf und übergibst eine Kennung, z.B. die ID des Datensatzes.
Die formular.php liest dann die zugehörigen Daten aus der Datenbank und trägt sie in das Formular ein.
Oder soll ich die Daten in der formular.ph „speichern“, also
quasi bestehen lassen?
Du markierst selbst das Wort „speichern“ mit Anführungszeichen. Daraus schließe ich, dass Du selbst nicht weißt, wie das gehen soll. Das frage ich mich auch gerade, wie Du die Daten „in einem PHP-Script“ speichern willst.
Wenn Du die Daten allerdings wirklich nur in den Seiten vorhalten und gar nicht speichern willst, kannst Du die Lösung mit den Sessions machen oder aber Du baust ein Formular - das kann ja auch eines sein, das nur Felder vom Typ „hidden“ hat - in der send.php und der Weg zurück ins formular.php geht dann über das Abschicken dieses Formulars.
Auf dieser send.php-Seite sind die ganzen Daten mitsamt der
Auswertungen der Radio-Butttons aufgeführt
Aufgeführt - aber wo sind sie gespeichert? In irgendeiner Form
von Datenbank, nehme ich an. Wenn Du also Datensätze wieder
editieren willst, rufst Du einfach über einen Link die
formular.php auf und übergibst eine Kennung, z.B. die ID des
Datensatzes.
Sorry, nein, nicht in der DB gezogen sondern über $_POST übertragen und ausgegeben.
Die formular.php liest dann die zugehörigen Daten aus der
Datenbank und trägt sie in das Formular ein.
Oder soll ich die Daten in der formular.ph „speichern“, also
quasi bestehen lassen?
Das frage ich mich auch gerade, wie
Du die Daten „in einem PHP-Script“ speichern willst.
Speichern ist sicherlich der falsche Ausdruck, ich dachte an „stehen lassen“ …Schwer zu beschreiben, aber wie du unten siehst werde ich es über SESSION machen.
Ja, das sollte so funktionieren, solange session_start() VOR den anderen headern ausgeführt wird, weil NACH den headern ja ein exit kommt. Du musst aber auch daran denken die Session in den Scripten zu starten, in denen du auf die Session-Daten zugreifen willst.
Du gibst die Zeile doch schon als String aus, entsprechend
muss diese Zeile so aussehen:
Scussi - hab ich vergessen zu erwähnen
Also er gibt mit bei -->
VALUE=.$\_SESSION[formular][firma].
das aus -->
.Array[name].
Sobald ich es in Hochkomma setze gibt er mir FM aus -->
Parse error: syntax error, unexpected T\_ENCAPSED\_AND\_WHITESPACE, expecting T\_STRING or T\_VARIABLE or T\_NUM\_STRING in D:\xampp\htdocs\formular.php on line 30
Sorry, nein, nicht in der DB gezogen sondern über $_POST
übertragen und ausgegeben.
Die Frage, die ich damit im Raum stehen lassen wollte ist, ob das für Deine Anwendung reicht, die Daten so „schwebend“ hin und her zu schieben, oder ob eine Speicherung nicht vielleicht einiges einfacher machen würde.
Speichern ist sicherlich der falsche Ausdruck
Wahrscheinlich, weil man nichts an einer Seite „haften“ lassen kann.
Hier würde vielleicht einiges einfacher, wenn Du die Funktionsweise der Arbeit zwischen Browser, Server und PHP-Interpreter genau kennst, also wer was wann macht und was speichert. Dass nach dem Abholen vom Server der Server den Browser wieder vergisst und nichts gespeichert wird.
aber wie du unten
siehst werde ich es über SESSION machen.
Die Session scheint also leer zu sein, aber ich habe trotzdem noch etwas übersehen:
value="".$_SESSION[‚formular‘][‚name‘].""
Die maskierten " -> " sind für die „Umrandung“ des Werts da, die hatte ich vergessen mit aufzuschreiben. Ansonsten müsste das bei funktionierender Session klappen, offensichtlich scheint dies aber nicht so zu sein, kannst du vielleicht mal die Session ID sowohl in der send.php, als auch in der formular.php ausgeben und vergleichen? Die müssen immer gleich sein. Ansonsten vermute ich hier ein Cookie-Problem!?