Beitrag von Frank (474 Beiträge) am Montag, 7.September.2009, 13:38.
Formulareingabe behalten
Antworten
Beitrag von sebastian (533 Beiträge) am Montag, 7.September.2009, 14:04.
Re: Formulareingabe behalten
schaue doch mal in der bib, unter dem silbershop von cb. da gibt es die seite - best -, dort ist alles was du suchst.
Antworten
Beitrag von Claus (4645 Beiträge) am Montag, 7.September.2009, 14:14.
Re: Formulareingabe behalten
Antworten
Beitrag von Frank (474 Beiträge) am Montag, 7.September.2009, 15:33.
Re: Re: Formulareingabe behalten
Die Ausführungen im Silbershop sind nicht gerade unkompliziert, deshalb erstmal javascript, auf jeden Fall vielen Dank für die schnelle Hilfe.
Antworten
Beitrag von Pouraga (1396 Beiträge) am Montag, 7.September.2009, 18:21.
Re: Re: Re: Formulareingabe behalten
Da brauchst du keine Komplizierte sachen wie sessions und cookies und javascript und sonnst noch alles. ;)
Gebe das Formular einfach im Fehlerfall aus und belege die Formularfelder mit den werten die gerade erst geschrieben werden sollten. Fertig!
Hier mal ein knappes Beispiel (mit dem $emsg, was ich btw. nicht so schön finde):
<perl>
if (%_put and length($Name)<=5){
$emsg = "Bitte einen Namen eingeben der länger ist als 5 Zeichen.";
}
if ($emsg eq "" and %_put){
put ["Name",$_put{"Name"}],"db";
}else{
$name = $_put{"Name"};
$name=~ s/"/"/gs;
out "<strong>$emsg</strong>" if $emsg ne "";
out<<"EOF";
<form action="http://www.baseportal.de/cgi-bin/baseportal.pl?htx=$htx"
method=post enctype="multipart/form-data">
<input type="text" name="Name:=" value="$name"><br>
<input type="submit">
</form>
EOF
}
</perl>
Antworten
Beitrag von Frank (474 Beiträge) am Dienstag, 8.September.2009, 17:08.
Re: Re: Re: Re: Formulareingabe behalten
Das funktioniert perfekt professionell, lieber Pouraga, ich würde natürlich jetzt auch gerne wissen, warum dir der $emsg-return nicht gefällt, keine große Ausführung, ich bekäme es z.Z. eh nicht aufgearbeitet, nur ein Wort dazu.
Meine Übersetzung des obigen codes ist:
Wenn Eingaben gemacht wurden und die Eingabe zum Formfeld 'Name' kleinergleich 5 ist (da muß man erst mal drauf kommen, daß hier automatisch die Buchstaben abgezählt werden) wird die Variable $emsg mit dem String 'Bitte einen Namen eingeben der länger ist als 5 Zeichen.' gefüllt.
Wenn $emsg ungefüllt ist und Eingaben gemacht wurden, dann wird der String des Feldes 'Name' in das Datenbankfeld 'Name' der datenbank db geschrieben.
sonst wird die Variable $name mit dem String des Formularfeldes Name gefüllt,
danach wird ???-ja, was das??? sieht irgendwie wie eine Form von sed aus, wie es in unixbasierten distris standardmäßig installiert ist um Zeichen zu manipulieren
danach kommt noch: Ausgabe der $emsg-Variablen, falls $emsg nicht leer ist.
Antworten
Beitrag von Pouraga (1396 Beiträge) am Mittwoch, 9.September.2009, 10:16.
Re: Re: Re: Re: Re: Formulareingabe behalten
Antworten
Beitrag von Claus (4645 Beiträge) am Donnerstag, 10.September.2009, 16:39.
Re: Re: Re: Re: Re: Re: Formulareingabe behalten
>So ist es etwas unschön, weil es nach dem Prinzip "erlauben vor verbieten" arbeitet. Sprich: Es ist alles ok, wenn keine Prüfung errmsg beschreibt. Besser ist es, dass alle Prüfungen ok sein müssen, damit der Eintrag angenommen wird. Aber das ist eher eine ästhetisches Problem, als eines über das du dir jetzt Sorgen machen solltest.
Nur mal so...
Irgendwie muß man doch die user darauf aufmerksam machen, wenn eine falsche oder unvollständige Angabe vorliegt, oder willst Du die user ohne Fehlermeldung solange eingeben lassen, bis es korrekt ist...?
;)
Kann man natürlich bei Fehlern auch farblich kennzeichnen, aber das ist jedem selbst überlassen...
Gruesse
Claus
Antworten
Beitrag von Pouraga (1396 Beiträge) am Donnerstag, 10.September.2009, 23:49.
Re: Re: Re: Re: Re: Re: Re: Formulareingabe behalten
Du hast nicht verstanden um was es geht. Es geht um die Reihenfolge von verbieten und erlauben und nicht um irgendwelche Fehlermeldungen.
Antworten
Beitrag von Claus (4645 Beiträge) am Freitag, 11.September.2009, 16:28.
Re: Re: Re: Re: Re: Re: Re: Re: Formulareingabe behalten
solange Du weißt, was damit gemeint ist....
Die Reihenfolge ist doch eigentlich Banane, denn die Fehlermeldung kommt doch nur, wenn ein Feld nicht korrekt ausgefüllt wurde, ansonsten wird der Eintrag doch übernommen oder sehe ich das jetzt falsch
Die Fehlergeschichte wird bei mir übrigens demnächst auch anders aussehen (farbliche Kennung der fehlerhaften Felder), aber bisher wird auch bei mir nur dann eine Fehlermeldung ausgegeben, wenn ein Feld falsch ausgefüllt wurde...
Sieht aber auch schon jetzt bei mir etwas anders aus als bei Frank...
Gruesse
Claus
Antworten