web-dev-qa-db-ja.com

PHPを処理するtextareaフィールドの文字数を制限する方法は?

私はhtmlで作成されたフォームのtextareaフィールドを使用しており、処理はphpによって行われます。ユーザーがテキストエリアに入力できる文字数を制限したい。 textareaフィールドがmysqlデータベースに格納され、フィールドのvarchar値に従ってユーザーデータを制限する必要があるため、これを実行できる方法はありますか?.

何か助けはありますか?

9
user1373168

これを制限するには、HTMLの_<textarea maxlength="120"></textarea>_などのtextareaタグにmaxlength属性を設定し、さらにPHP by substr()関数で入力文字列を「カット」します。 。

19
s.webbandit

s.webbandit で述べたように、maxlengthを使用できますが、これはHTML5で導入された新機能であることに注意してください。W3Schools article<textarea>なので、「防弾」ソリューションにはJavascriptが必要です。したがって、maxlengthはバージョン10までInternetExplorerでは not でサポートされており、Operaではまったくサポートされていません。

これは、Javascriptを使用して支援する1つのアプローチです。

<script language="javascript" type="text/javascript">
   function charLimit(limitField, limitCount, limitNum) {
    if (limitField.value.length > limitNum) {
      limitField.value = limitField.value.substring(0, limitNum);
  } else {
      limitCount.value = limitNum - limitField.value.length;
       }
    }
</script>

その後、次のように使用できます( 元のソース ):

    <textarea name="limitedtextarea" onKeyDown="charLimit(this.form.limitedtextarea,this.form.countdown,100);">
    </textarea>

これでうまくいくはずです。

9
toni_lehtimaki

これは、JavaScriptを介してテキスト領域の長さを制限する非常に簡単な方法です。

テキストエリアフィールド:

<input class='textField' type='text' NAME='note1' value='' onkeyup='charLimit(this, 40);'>

JavaScript関数:

function charLimit(limitField, limitNum) {
  if (limitField.value.length > limitNum) {
   limitField.value = limitField.value.substring(0, limitNum);}
}

ユーザーが40文字を超えて入力すると、それらは削除されます。

4
JoBaxter

Textareasのテキストを制限するためにさまざまな方法を試しましたが、(クライアント側で)見つけた最良の方法はjQuery.Maxlength.jsプラグインを使用することです。シンプルで素早く、すべてをカバーします!

ステップ1.Maxlengthプラグインスクリプトを含める

<script language="javascript" src="jquery.maxlength.js"></script>

手順2.maxlength属性をに追加します

<textarea maxlength="35" 
    rows="5" cols="30" name="address"></textarea>

ステップ3.プラグインを初期化します

<script type="text/javascript">
    $(document).ready(function($) {
             //Set maxlength of all the textarea (call plugin)
             $().maxlength();
    })
</script>

https://github.com/viralpatel/jquery.maxlength

1
jasonflaherty
<script type="text/javascript">
        $(document).ready(function(){
        var maxChars = $("#sessionNumtext");
        var max_length = maxChars.attr('maxlength');
        if (max_length > 0) {
            maxChars.bind('keyup', function(e){
                length = new Number(maxChars.val().length);
                counter = max_length-length;
                $("#sessionNum_counter").text(counter);
            });
        }
    });
</script>

<textarea name="sessionNumtext" id="sessionNumtext" maxlength="20" type="text"></textarea>
kalan karakter sayısı: <span id="sessionNum_counters">20</span>
0
ufuk