PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeichenzähler realtime im Formular sehen


Linux Anfänger
22.07.2004, 00:50:04
Hallo.

Ich habe mal eine Frage. Wie kann man einen Zeichenzähler innerhalb eines Formulars realisieren. Genauer = Wenn ich in einem Formular z.B. eine Seriennummer eingeben muß, ist diese gerne mal 20 Zahlen lang. Nun möchte ich neben diesem eingabefeld nen Zähler haben, der realtime die eingegebenen Zeichen zählt und sofort anzeigt. Geht sowas ? und wenn ja wie ich weis nicht wo ich ansetzten soll. Derzeit ist das Form in PHP (Bestellung.php)

Jemand ne Idee ?

xabbuh
22.07.2004, 04:00:06
Ein Zähler, der schon während der Eingabe die Anzahl der eingegebenen Buchstaben ermittelt ist mit php nicht zu realisieren. Mit php kannst du nur nach dem Absenden des Formulars über die Funktion strlen() (http://www.selfphp.info/funktionsreferenz/string_funktionen/strlen.php) an die Länge einer Variable kommen.
Aber um dich nicht zu enttäuschen: Auch in realtime lässt sich die Anzahl der eingegeben Zeichen anzeigen. Vorraussetzung: JavaScript muss aktiviert sein.

Ein Beispiel:

<script type="text/javascript">
function laenge()
{
var aktuelleLaenge=document.formular.seriennumer.value.length+1;
document.getElementById('infotext').innerHTML='Eingegebene Zeiche: '+aktuelleLaenge;
if(aktuelleLaenge>=20) {
alert("Die Seriennummer ist jetzt lang genug!");
}
}
<!--
//-->
</script>

<form name="formular" method="POST" action="Bestellung.php">
<input type="text" name="seriennummer" onKeyDown="laenge()">

<div id="infotext">Eingegebene Zeichen: 0</div>
</form>


Schau dir dazu am besten auch dieses Beispiel an: onKeyDown (http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onkeydown)

Trotzdem solltest du nach dem Versenden des Formulars in php überprüfen, ob die Länge des Textes auch korrekt ist, da sich JavaScript nicht dazu eignet zu überprüfen, ob der User auch wirklich alles korrekt eingibt. Dazu ist es zu leicht zu umgehen.

Linux Anfänger
22.07.2004, 08:26:42
Guten Morgen.

Hab vielen Dank für deine Info. Ich werde mich mal damit auseinander setzen. Das es mit PHP nicht geht habe ich mir fast gedacht. Aber Java ist auch ne Lösung. ! ich werde es mal versuch.

Thnx.

c4
22.07.2004, 08:43:52
Aber Java ist auch ne Lösung. Nein, ist es nicht!! JavaScript ist es!!

Linux Anfänger
22.07.2004, 09:30:14
@C4

:-) ok hab ja verstanden. javaScript !

yozek
22.07.2004, 09:39:24
var maximal = 20;
function anzeige(){
laenge = maximal - document.sms.msg.value.length

if (laenge > 0)
{
document.sms.anzahl.value = laenge;
}
else{
if(gesehen == 0)
{
gesehen = 1;
document.sms.msg.value = document.sms.msg.value.substring(0,maximal);
alert("Nachricht überschreitet die" + maximal + "Zeichen.");


}
document.sms.anzahl.value = 0;
document.sms.msg.value = document.sms.msg.value.substring(0,maximal);
}
}