Zur Navigation

Eingetragene Zeichen zählen

1 Frank

Hallo,

ich habe eine Java-Script welches mir die eingetragenen Anzahl an verbrauchten Zeichen anzeigt die in einem Textarea eingetragen werden können. Da es jedoch mit Java-Script immer so seine Probleme gibt (aktiviert / deaktiviert) würde ich dies gerne in Php realisieren.

Würde gerne, dass in einem Textarea nur eine bestimmte Anzahl an Zeichen eingegeben werden kann. (z.B. 180 Zeichen) Mehr sollen nicht möglich sein. Wie mache ich das?

Gruß Frank

10.02.2007 10:25

2 Jörg

Hallo Frank,

mit substr() kannst du die Eingabe aus dem Textarea in PHP nachträglich kürzen

$text = substr($text, 0, 180);

10.02.2007 11:07

3 Frank

Hi Jörg,

ja und wenn ich die aktuellen Zeicheneingabe auf 180 Zeichen begrenzen möchte? Also oben über den Textarea soll bei Eingabe eines Zeichen dann nur noch 179 dann 178 usw. erscheinen. Bin ich dann bei 0 angelangt, dann muss ich auch keine weiteren Zeichen eingeben können. Wie mache ich sowas? Habe so etwas schon häufig im Internet gesehen aber den entsprechenden Code in Php habe ich bislang noch nicht gefunden. Hat jemand einen Tipp oder einen Codeschnipsel?

Gruß Frank

10.02.2007 19:35

4 Rudy

Eine serverseitige Prüfung ersetzt dies hier nicht, aber für den javascriptfähigen Benutzer ist es ganz nett:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
	
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<title></title>
</head>
<script type="text/javascript">
function showCharsLeft() {
  charfield = document.getElementById('charsleft');
  messagefield = document.getElementById('message');
  maxlength = messagefield.getAttribute('maxlength');
  charfield.value = (maxlength - messagefield.value.length);
}
</script>
<body>
<form method="post">
<fieldset>
<label for="charsleft">Zeichen:</label>
<input type="text" value="180" id="charsleft" name="charsleft" disabled="disabled" readonly="readonly" size="3" maxlength="20" /><br />
<label for="message">Nachricht:</label><br />
<textarea cols="33" rows="3" maxlength="180" id="message" name="message" onchange="showCharsLeft()" onkeyup="showCharsLeft()">
</textarea>
</fieldset>
</form>
</body>
</html>

10.02.2007 20:05 | geändert: 10.02.2007 20:05

5 Jörg

Du kannst die Länge des Strings mit strlen() messen, und im Fall des Falles eine Rückmeldug machen:

if (strlen($text) > 180) {
    ?>
<form method="post" action="">
<p>Der Text wurde auf 180 Zeichen gekürzt</p>
<textarea name="text"><?php echo substr($text, 0, 180) ?></textarea>
<button type="submit">abschicken</button>
</form>
<?php
}

Für einen Rückwärtscounter wirst du aber eine clientseitige Scriptsprache wie JavaScript benötigen, siehe z.B. Rudys Lösung.

10.02.2007 20:37 | geändert: 10.02.2007 20:39

6 Frank

Ok, dann gibt es also keine Möglichkeit dies anders als mit Javascript zu realisieren.

Mit deiner Lösung Jörg, kann ich dann also dafür sorgen, dass vor dem eintragen der Daten in die Datenbank, diese auf die von mir gewünschte Anzahl von Zeichen überprüft und gekürzt werden.

Schade ich dachte das Problem kann man irgendwie mit Php lösen! Trotzdem danke!

Gruß Frank

11.02.2007 09:55

Beitrag schreiben (als Gast)

Beim Verfassen des Beitrages bitte die Forenregeln beachten.





[BBCode-Hilfe]