Список чисел в форме

zavu

Старатель
Регистрация
24 Сен 2010
Сообщения
180
Реакции
14
В общем, появилась такая проблемка: есть форма сбора данных, и среди этих данных есть графа, в которой нужно выбрать число от 1 до 150. Пока что мне в нубоголову не пришло ничего, кроме как прописать все числа в выпадающем списке вида:

Код:
<option value="" selected="selected"></option>
<option value="1" >1</option>
<option value="2" >2</option>
...
<option value="150" >150</option>

Но это, сами понимаете, ппц длинный и нудный геморрой. И выглядит печально =/

Собственно, вопрос: а нельзя ли как-то весь этот ужас заменить какой-то штукой, которая выдавала бы пользователю этот список цифр на выбор? Чтобы просто задать начальный и конечный параметр (от 1 до 150) и радоваться жизни?
 
а не проще ли чтоб пользователь сам вводил число?
ну и просто ограничить его мин/макс значением ...

ну и еще как вариант можно такую штуку попробовать

в той или иной вариации
 
PHP:
<select name="numbre">
<option value="" selected="selected"></option>
<?php 
for($i=1; $i<=150; $i++;){
echo "<option value='".$i."' >".$i."</option>";
}
?>
</select>
 
  • Нравится
Реакции: zavu
вариант dino работает=) только после $i++; точку с запятой надо было убрать, на нее эррор лог ругался=))
 
А ну да :) сорри... эт я спросонья :D
 
На самом деле чем листать в крошечном дроп-дауне до 150, намного легче вбить три цифры руками. Ты по-моему перемудрил немного с интерфейсом.
PHP:
<script>
function ch(in) {
  v = ParseInt(in.value);
  if (v <= 0 || v > 150) {
      alert('Invalid value');
      in.value = '';
      in.focus();
  }
}
</script>
<input size=3 name=nambre onchange="ch(this)">
 
Ну как бы причин "перемудрить" может быть много, например прихоть заказчика... :) Ну и тема здесь по РНР а не по ява скриптам... Но раз пошла такая пьянка и предлагаем решение на яваскрипте, то зачем ждать пока пользователь нажмет отправку формы? Там может быть ещё черт знает сколько параметров, которые после неудовлетворительного результата проверки формы могут обнулиться и пользователю прийдется все по новой забивать... а это очень раздражает! Лучше отслеживать и корректировать все в процессе ввода данных пользователем:
Код:
<script type="text/javascript">
    $(function() {
    $('#num').keyup(function(){
  var valmin=1;
  var valmax=150;
      if(isNaN($('#num').val()/1)) {$('#num').val('');  }
      if($('#num').val()>valmax){$('#num').val(valmax);}
      if($('#num').val()<valmin){$('#num').val(valmin);}
          });
       });
  </script>
<body>
<input size="3" name="nambre" id="num">
данный пример реализован с применением фреймворка jquery (переделать на простой яваскрипт в принципе не сложно) Отслеживает все что ввел пользователь в текстовое поле и если данные не соответствуют необходимым(текст, левые значки, цифра не входящая в заданный диапазон), то автоматом подправляются...
 
Весь вопрос только в том, что некоторые яву отключают =/ меня тут запугали, что мол, если ее отключить, можно черте-че наввести своего о_О В принципе, ява мне нравится, только с условием того,что будет какая-то проверка безопасности введенных данных на выходе независимо от того, работает ява у клиента, или нет =)
 
Так отправляемые данные помимо проверки яваскриптом надо бы еще и на сервере проверять. Яваскриптом обычно проверяют для пользователя. чтоб мыльник правильно ввел и прочие данные, а на сервере уже для себя проверяешь, для безопасности и т.д.
 
И дропдаун никак не спасает от проверки данных на сервере. Тебе через дропдаун с числами от 0 до 150 точно так же могут засунуть и -1, и ';DROP TABLE и все что хочешь. Это вообще никак не связано.

Javascript - плюшечки для юзера, а проверка данных на сервере - это так сказать основа основ для любого скрипта. Все, что в него приходит "снаружи" по умолчанию считается враждебным, даже переменные окружения. На яваскрипт уж точно полагаться нельзя.
 
Назад
Сверху