Beitrag von lililu (5 Beiträge) am Sonntag, 21.Mai.2006, 13:55.
begrenzung bei der zeicheneingabe im textfeld
hallo liebe profis,
ich bin am verzweifeln. bis jetzt habe ich mir alles was ich so brauchte aus der bibliothek geholt und versucht die scripte an meine website anzupassen
(danke danke christoph und wer sonst noch alles dahintersteckt ;)!! ohne baseportal hätte ich mein projekt nicht anfangen können..)
klappte auch bis jetzt ganz gut aber nun brauche ich doch noch hilfe. bin noch anfängerin und finde es einfach nicht selbst heraus. aaalsoo:
ich habe ein formular erstellt, indem man in der textbox nur eine bestimmte zeichenanzahl eingeben darf. wenn nun zuviele zeichen eingegeben werden, erscheint nach dem abschicken die fehlermeldung "der text ist zu lang, bitte korrigieren...". leider ist dann die gesamte eingabe, die man vorher im formular getätigt hat, verschwunden. außerdem wird wohl bei der zweiten eingabe einiges nicht erkannt und in die datenbank übertragen. läßt sich hier irgendetwas ändern, damit man nicht jedes mal alles neu eingeben muß? oder gibt es vielleicht die möglichkeit, in den feldern die zeicheneingabe schon zu begrenzen damit garnicht erst zuviel eingegeben wird?
vielen dank schonmal für eure tips und gruß
lililu
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Sonntag, 21.Mai.2006, 14:09.
Re: begrenzung bei der zeicheneingabe im textfeld
Erstmal herzlich Willkommen ;-)
Scheinst ja schon ganz weit gekommen zu sein - wie sieht denn Dein jetziger Code aus?
Antworten
Beitrag von lililu (5 Beiträge) am Sonntag, 21.Mai.2006, 15:34.
Re: begrenzung bei der zeicheneingabe im textfeld
hallo christoph,
danke! :)
also das ist mein derzeitiger code:
und das der link zum formular:http://baseportal.de/cgi-bin/baseportal.pl?htx=/lililu/ka/aufnahme
zum angucken
my $maxtext=30;
my $maxtextz=60;
my $maxtextd=120;
my $emsg="";
if(%_put)
{
$emsg.="Bitte geben Sie Ihren Namen ein! " if $_put{Name} eq "";
$emsg.="Bitte geben Sie Ihren Vornamen ein! " if $_put{Vorname} eq "";
$emsg.="Der Anzeigentext ist zu lang! Bitte kürzen Sie ihn auf maximal $maxtext Zeichen." if length($_put{Fuenf_Zeilen})>$maxtext;
$emsg.="Der Anzeigentext ist zu lang! Bitte kürzen Sie ihn auf maximal $maxtextz Zeichen." if length($_put{zehn_Zeilen})>$maxtextz;
$emsg.="Der Anzeigentext ist zu lang! Bitte kürzen Sie ihn auf maximal $maxtextd Zeichen." if length($_put{Zwanzig_Zeilen})>$maxtextd;
if($emsg eq "")
{
put;
out "<ul><b>Ihr Eintrag wurde aufgenommen...</b></ul>";
} else
{
out "<ul><font color=d80000><b>$emsg</b></font></ul>";
}
}
"";
...wo du grad mein ansprechpartner bist, hätt ich da noch ne frage:
wenn alles einwandfrei läuft, möchte ich baseportal gerne mieten anfänglich mit der smart2 version. hier gibt es doch den file-upload und eine backup-funktion für die datensicherung oder? (steht nich so direkt bei der bestellbeschreibung dabei, vielleicht bin ich auch zu blööd das zu finden ;)
dankeee
gruß
lililu
Antworten
Beitrag von Thomas H. (180 Beiträge) am Sonntag, 21.Mai.2006, 17:20.
Re: begrenzung bei der zeicheneingabe im textfeld
Antworten
Beitrag von Claus (4645 Beiträge) am Sonntag, 21.Mai.2006, 18:07. WWW: jobmarder.de
Re: begrenzung bei der zeicheneingabe im textfeld
Hallo Thomas,
bei Textfeldern ist das schon richtig, aber bei Textarea-Feldern geht das imho nur mit js.
Lasse mich da aber gerne eines Besseren belehren.
Gruß
Claus
Antworten
Beitrag von lililu (5 Beiträge) am Sonntag, 21.Mai.2006, 19:30.
Re: begrenzung bei der zeicheneingabe im textfeld
hallo thomas,
ich habs mal mit $maxlength statt maxtext versucht. aber keine änderung..schade
wahrscheinlich funktioniert es tatsächlich nur mit js.
gruß
lililu
Antworten
Beitrag von Claus (4645 Beiträge) am Sonntag, 21.Mai.2006, 17:33. WWW: jobmarder.de
Re: begrenzung bei der zeicheneingabe im textfeld
Hi,
Bin zwar nicht Christoph aber einige Dinge kann ich Dir vielleicht schon beantworten.
Die Möglichkeiten bei Miete werden hier etwas genauer erläutert:
http://baseportal.de/bpws_doku.html
Zu Deinem Code:
ist doch eigentlich schon ganz richtig so, wie Du das gemacht hast. Was Du möchtest(die Zeichenbegrenzung bereits bei der Eingabe), geht allerding meines Wissens nur mit javascript. Wenn allerdings ein user js deaktiviert hat, geht das bereits ins "Leere".
Normalerweise reicht da ein dezenter Hinweis bei der Error-message, auf den Browser-Back-Button zu klicken. Dann sollte eigentlich wieder das Eingabe-Formular inkl. der bereits geschriebenen Daten wieder zu sehen und zu berichten sein.
Gruß
Claus
Antworten
Beitrag von lililu (5 Beiträge) am Sonntag, 21.Mai.2006, 19:35.
Re: begrenzung bei der zeicheneingabe im textfeld
oh ich wollte nicht den eindruck machen, das die frage nur an christoph geht ;)
dank dir für den link und den tip.
habs mal mit dem browser-back-button versucht, leider ist die vorherige eingabe dann trotzdem verschwunden. komisch..
hach dann gibt es wohl nur die lösung mit javascript oder ich muß es rauslassen. hilft ja nix..
viele grüße
lililu
Antworten
Beitrag von markus (1013 Beiträge) am Sonntag, 21.Mai.2006, 21:29.
Re: begrenzung bei der zeicheneingabe im textfeld
hi lililu,
es sollte auch ohne js klappen.
versuch es mal so.
abfrage von pflichtfeldern und max. zeichenbegrenzung für
bestimmte felder.
klappt, wie zeilenumbrüche, o.ä. gerechnet werden, habe ich jetzt
nicht getestet, aber das sollte nicht das problem sein.
gruß
markus
if ($cmd eq "add") {
$err.="[Pflichtfeld1] >" if $_put{Pflichtfeld1} eq "";
$err.="[Pflichtfeld2] >" if $_put{Pflichtfeld2} eq "";
$err.="[Pflichtfeld3] >" if $_put{Pflichtfeld3} eq "";
if (length($_put{Text}) > 120){
$err.="Ihr Eintrag darf max. 120 Zeichen haben.<br>";
}
if ($err ne ""){
undef %_put;
}
if ($err ne "") {
out "Ihre Anzeige konnte nicht entgegengenommen werden.<br>
Es wurden nicht alle Felder korrekt ausgefüllt.</b> <br>$err<br><a HREF='javascript:history.back();'>zurück<br></a>";
undef %_put;
}else{
....
Antworten
Beitrag von Claus (4645 Beiträge) am Sonntag, 21.Mai.2006, 21:44. WWW: jobmarder.de
Re: begrenzung bei der zeicheneingabe im textfeld
Antworten
Beitrag von Thomas H. (180 Beiträge) am Sonntag, 21.Mai.2006, 22:09.
Re: begrenzung bei der zeicheneingabe im textfeld
Und hier noch eine Javascript Möglichkeit.
Der Vorteil ist, das der Nutzer sieht, wieviel Zeichen noch übrig sind.
Die Perl Variante ist allerdings besser,
da sie auch ohne Javascript Aktivierung funktioniert.
<html>
<head>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function countDigits(){
var maxDigits = 50; //maximale Zeichenanzahl
var areaString = document.forms[0].text.value;
var currLength = areaString.length + 1;
var restLength = maxDigits - currLength +1;
if ( restLength < 0 ) {
restLength = 0;
}
document.forms[0].counter.value = restLength;
if (areaString.length > maxDigits-1) {
//die folgende Zeile entfernt alle Zeichen die > maxDigits sind
document.forms[0].text.value = document.forms[0].text.value.substring(0,maxDigits);
}
}
//-->
</SCRIPT>
</head>
<body>
<form>
noch <input name="counter" type="text" value="50" size="4"> Zeichen<br>
<textarea name="text" cols="60" rows="7" onKeyUp="countDigits()" onClick="countDigits()"></textarea>
</form>
</body>
</html>
Antworten
Beitrag von lililu (5 Beiträge) am Montag, 22.Mai.2006, 15:11. WWW: liliput-ol.de
Re: begrenzung bei der zeicheneingabe im textfeld
hallo thomas
sou ich habe nun den zähler mit eingebaut. mit dem perl-script hab ich mich nen bißchen schwer getan. kamen auch fehlermeldungen, ging irgendwie nich so...
funktioniert aber nun alles einwandfrei. find ich gut, das man so sehen kann wieviel zeichen schon verbraucht worden sind. ist zwar ein nachteil wegen javascript, aber den nehme ich in kauf. so merkt man nicht erst nach abschicken des formulars, das zuviele zeichen eingegeben worden sind. zählt ja bestimmt auch keiner mit wenn man was reinschreibt. ich werd am besten einen zusatzhinweis dazuschreiben, das der zähler nur mit js funktioniert, damit ahnungslose user bescheid wissen.
viele dankeschön`s an alle für die hilfe! :)
lieben gruß
lililu
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 22.Mai.2006, 23:58.
Re: begrenzung bei der zeicheneingabe im textfeld
> wenn alles einwandfrei läuft, möchte ich baseportal gerne mieten anfänglich mit der smart2 version. hier gibt es doch den file-upload und eine backup-funktion für die datensicherung oder? (steht nich so direkt bei der bestellbeschreibung dabei, vielleicht bin ich auch zu blööd das zu finden ;)
Ja, genau, das ist da dabei. Ganz detailliert stehts in der (Zusatz-)Dokumentation für die Mietpakete:
http://baseportal.de/bpws_doku.html
Antworten