Hello Helmut,
Indem Du auf dem Server für die betroffenen Value-Attribute Variablen bereit hältst, und diese dann einsetzt. Dazu musst Du aber eine Zustandsorientierung erzeugen, z.B. mit einer Session, da HTTP das sonst nicht unterstützt.
Hallo Tom vom Berg,
vielen Dank für Deine Antwort!Nachdem ich unter Session und Zustandsorientierung nachgeschlagen habe, erscheint mir das ziemlich kompliziert (max in pro min out). Deshalb gebe ich den aktuellen Wert lieber separat auf dem Bildschirm in der Nähe des input-Feldes aus.
Die Session benötigst Du auch nur, wenn Die Eingabe für mehr als einen Roundturn mitgeschleppt wrden muss.
erste Antwort
Server O O
/ \ / \
/ \ / \
/ \ / \
Client O O O usw.
Erstanfrage 2. 3.
2. = erstes Anzeigen einer Seite im Client
und ggf. zweite Anfrage mit erhaltenen Werten
an den Server
Bei 2. erhältst Du vom Server die Defaults in den Feldern, so wie Du sie definiert hast
Bei 3. erhältst Du dann ggf. die vom Benutzer eingegegebenen Werte (kontrolliert) zurück
Das Ganze Pingpongspiel wird auch mit "Affenformular" bezeichnet, weil jeder Affe das Formular mit seinen (falschen) Werten sooft zurückbekommen kann, bis der Server damit zufrieden ist. Such mal unter Affenformular.
Wenn Du aber nun z.B. Eingaben von 2. nach 4. durchschleppen musst, ohne dass diese dem User zur Verfügung gestellt werden sollsn (angezeigt werden sollen), dann bietet sich eine Session an. Du könntest die Werte auch in einem Hidden-Element verstecken, das dann aber vom User noch manipuliert werden könnte. Außerdem erhöht es den Traffic, was aber heutzutage wohl eher nebensächlich ist.
Du musst also nur feststellen, ob das Formular mit einem geeigneten Wert ausgefüllt worden ist und dieser übertragen wurde. Dann kannst Du anstelle des Defaults diesen Wert einsetzen in das Value-Attribut oder in die Textarea ...
p.s.
Machmal frage ich mich , was für ein FORTRAN, C oder MATLAB wir wohl bekommen hätten, wenn sich die html-, js- oder php-Erfinder darüber hergemacht hätten.
Da wirfst Du nun einiges durcheinander. HTML ist nicht primär daran schuld, sondern die Zustandslosigkeit des Client-Server-Prozesses per HTTP-Protokoll. Jeder Request steht für sich alleine. Da keine Verbindungsorientierung vorliegt, kann auch kein Zustand für die Verbindung gespeichert werden. Sie existiert ja nicht.
In der Praxis wird diese Forderung dann künstlich durch Session-Identifier erfüllt.
Die benötigen in PHP gerade mal einen Befehl:
<?php
session_start();
Alles andere geht dann automatisch.
In dem "superglobalen" Variablen-Array $_SESSION kannst Du dann alle zu speichernden Werte hinterlegen. Beachte die Grossschreibung des Bezeichners!
Mit
if (isset($_SESSION['mein_wert'])
{
echo ' <input name="mein_wert" type="text" value="' . htmlspecialchars($_SESSION['mein_wert']) . '">';
}
else
{
echo ' <input name="mein_wert" type="text" value="3.1415">';
}
kannst Du dann den vom User gesendeten Wert in der "kastrierten" Form ausgeben lassen. Hier mal explizit ausformuliert; das kannst Du beliebig kürzer schreiben...
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg