B
ByeBye 251003
Hallo,
bei der Eingabe eines Strings in eine Textarea werden die Zeichen simultan mit JS mitgezählt und im Input mit dem Namen "remLen" ausgegeben. Das Problem ist nur, wenn der gleiche String danach mit u.g. php-Funktion (und allen anderen passenden Count PHP-Funktionen) untersucht wird, kommt eine andere Zeichenanzahl raus. Folgendes wurde getestet:
a)
Eingabe ein Zeichen, Cursor stoppt dahinter:
JS zählt 1 Zeichen
PHP zählt 1 Zeichen
b)
Eingabe ein Zeichen, danach Enter, also Cursor eine Zeile tiefer
JS zählt 2 Zeichen
PHP zählt 3 Zeichen
Kann mir jemand sagen, wie ich auf gleiche Ergebnisse komme? Hier die entsprechenden Funktionen:
mit PHP:
mit JS: (aufs wesentliche reduziert)
bei der Eingabe eines Strings in eine Textarea werden die Zeichen simultan mit JS mitgezählt und im Input mit dem Namen "remLen" ausgegeben. Das Problem ist nur, wenn der gleiche String danach mit u.g. php-Funktion (und allen anderen passenden Count PHP-Funktionen) untersucht wird, kommt eine andere Zeichenanzahl raus. Folgendes wurde getestet:
a)
Eingabe ein Zeichen, Cursor stoppt dahinter:
JS zählt 1 Zeichen
PHP zählt 1 Zeichen
b)
Eingabe ein Zeichen, danach Enter, also Cursor eine Zeile tiefer
JS zählt 2 Zeichen
PHP zählt 3 Zeichen
Kann mir jemand sagen, wie ich auf gleiche Ergebnisse komme? Hier die entsprechenden Funktionen:
mit PHP:
Code:
mb_strlen($anfrage);
mit JS: (aufs wesentliche reduziert)
Code:
$restzeichen = isset($_POST["remLen"]) ? $_POST["remLen"] : "1000";
function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit)
field.value = field.value.substring(0, maxlimit);
else
countfield.value = maxlimit - field.value.length;
}
<input type="text" name="remLen" value="<? echo $restzeichen; ?>" />
<textarea name="anfrage"
onkeydown ="textCounter (this.form.anfrage,this.form.remLen,<? echo $restzeichen; ?>);
onkeyup ="textCounter (this.form.anfrage,this.form.remLen,<? echo $restzeichen; ?>);
><? echo $anfrage; ?></textarea>