it-swarm.com.ru

как ограничить количество символов в текстовом поле обработки PHP?

Я использую поле textarea в форме, созданной на html, а обработка выполняется php. Я хочу ограничить количество символов, которое пользователь может ввести в текстовой области. Есть ли способ, которым это может быть сделано, потому что поле textarea затем сохраняется в базе данных mysql, и, таким образом, я должен ограничить пользовательские данные в соответствии со значением поля varchar.

Любая помощь?

9
user1373168

Вы можете ограничить это, установив атрибут maxlength для тега textarea, например <textarea maxlength="120"></textarea> в HTML, и дополнительно «вырезать» входную строку в PHP с помощью функции substr().

18
s.webbandit

Как уже упоминалось в s.webbandit, вы можете использовать maxlength, но учтите, что это новая функция, представленная в HTML5, как W3 Schools article about <textarea>, поэтому для «пуленепробиваемого» решения необходим Javascript. Таким образом, maxlengthне поддерживается в Internet Explorer до версии 10, а в Opera вообще не поддерживается.

Вот один подход, который использует Javascript, чтобы помочь вам:

<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