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

Тема в разделе "PHP", создана пользователем zavu, 2 июл 2011.

Модераторы: latteo
  1. zavu

    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) и радоваться жизни?
     
  2. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    а не проще ли чтоб пользователь сам вводил число?
    ну и просто ограничить его мин/макс значением ...

    ну и еще как вариант можно такую штуку попробовать
    http://jqueryui.com/demos/slider/#hotelrooms
    в той или иной вариации
     
  3. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    PHP:
    <select name="numbre">
    <option value="" selected="selected"></option>
    <?php 
    for($i=1$i<=150$i++;){
    echo 
    "<option value='".$i."' >".$i."</option>";
    }
    ?>
    </select>
     
    zavu нравится это.
  4. zavu

    zavu

    Регистр.:
    24 сен 2010
    Сообщения:
    180
    Симпатии:
    14
    вариант dino работает=) только после $i++; точку с запятой надо было убрать, на нее эррор лог ругался=))
     
  5. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    А ну да :) сорри... эт я спросонья :D
     
  6. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    На самом деле чем листать в крошечном дроп-дауне до 150, намного легче вбить три цифры руками. Ты по-моему перемудрил немного с интерфейсом.
    PHP:
    <script>
    function 
    ch(in) {
      
    ParseInt(in.value);
      if (
    <= || 150) {
          
    alert('Invalid value');
          
    in.value '';
          
    in.focus();
      }
    }
    </script>
    <input size=3 name=nambre onchange="ch(this)">
     
  7. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    Ну как бы причин "перемудрить" может быть много, например прихоть заказчика... :) Ну и тема здесь по РНР а не по ява скриптам... Но раз пошла такая пьянка и предлагаем решение на яваскрипте, то зачем ждать пока пользователь нажмет отправку формы? Там может быть ещё черт знает сколько параметров, которые после неудовлетворительного результата проверки формы могут обнулиться и пользователю прийдется все по новой забивать... а это очень раздражает! Лучше отслеживать и корректировать все в процессе ввода данных пользователем:
    Код:
    <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 (переделать на простой яваскрипт в принципе не сложно) Отслеживает все что ввел пользователь в текстовое поле и если данные не соответствуют необходимым(текст, левые значки, цифра не входящая в заданный диапазон), то автоматом подправляются...
     
  8. zavu

    zavu

    Регистр.:
    24 сен 2010
    Сообщения:
    180
    Симпатии:
    14
    Весь вопрос только в том, что некоторые яву отключают =/ меня тут запугали, что мол, если ее отключить, можно черте-че наввести своего о_О В принципе, ява мне нравится, только с условием того,что будет какая-то проверка безопасности введенных данных на выходе независимо от того, работает ява у клиента, или нет =)
     
  9. ramses21

    ramses21 Постоялец

    Регистр.:
    20 июл 2008
    Сообщения:
    107
    Симпатии:
    16
    Так отправляемые данные помимо проверки яваскриптом надо бы еще и на сервере проверять. Яваскриптом обычно проверяют для пользователя. чтоб мыльник правильно ввел и прочие данные, а на сервере уже для себя проверяешь, для безопасности и т.д.
     
  10. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    И дропдаун никак не спасает от проверки данных на сервере. Тебе через дропдаун с числами от 0 до 150 точно так же могут засунуть и -1, и ';DROP TABLE и все что хочешь. Это вообще никак не связано.

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