За последние 24 часа нас посетили 30572 программиста и 1801 робот. Сейчас ищут 986 программистов ...

javaScript как обрабатывать формы и выводить подсказки

Тема в разделе "JavaScript и AJAX", создана пользователем _ne_scaju_, 1 июл 2017.

  1. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    без разницы, лишь бы код покороче с циклом писался и внятно / приятно на глаз
    --- Добавлено ---
    array_map / while
     
    _ne_scaju_ нравится это.
  2. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @MouseZver
    Согласен я люблю когда код красивый, да а когда он еще и расписан все разжевано то вообще обожаю, хоть начинаю соображать что и для чего там именно так написан код) спасибо вам ребята, что помогаете вы лучшие!!!
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    через for
     
    _ne_scaju_ нравится это.
  4. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @denis01
    у меня получается фигня через foreach с месяцем делаю так:
    PHP:
    1.       <?php
    2.       $month = ['Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря'];
    3.       foreach($month as $key => $value){
    4.       ?>
    5.       <select id="month" name="month" class="">
    6.       <option>Месяц рождения</option>
    7.       <option value="<?=$key?>"><?=$value?></option>
    8.       </select>
    9.       <div class="clear"></div>
    10.       <?php } ?>
    вот скрин ниже что получается, в каждом меню по одному месяцу то-есть его названию
     

    Вложения:

    • 1111.png
      1111.png
      Размер файла:
      6,4 КБ
      Просмотров:
      3
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    в цикле оставь только <option value="<?=$key?>"><?=$value?></option>

    все остальное до цикла и после
     
  6. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @MouseZver
    Благодарочка исправил.
     
  7. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    Все с датой в форме я разобрался, решение было вот такое, оптимально, и довольно отличное:
    PHP:
    1. <select id="day" name="day" class="">
    2. <option>День рождения</option>
    3. <?php
    4. for($day = 1; $day<=31; $day++){
    5. echo '<option value="'.$day.'">'.$day.'</option>';
    6. }
    7. ?>
    8. </select>
    9. <div class="clear"></div>
    10.  
    11. <select id="month" name="month" class="">
    12. <option>Месяц рождения</option>
    13. <?php  //организовываем цикл foreach
    14. $month = ['Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря'];
    15. // в цикл будем ставить ключ который будет обращаться передавать данные в переменную $value
    16. foreach($month as $key => $value){
    17. echo '<option value="'.$key.'">'.$value.'</option>';
    18. }
    19. ?>
    20. </select>
    21. <div class="clear"></div>
    22.  
    23. <select id="year" name="year" class="">
    24. <option>Год рождения</option>
    25. <?php
    26. for($year = 1930; $year <= 2017; $year++){
    27. echo '<option value="'.$year.'">'.$year.'</option>';
    28. }
    29. ?>
    30. </select>
    31. <div class="clear"></div>
    И в итоге я добавил еще 4 поля для регистрации, перейдем к php... вопрос звучит теперь так, как обычно делается проверка для таких полей, именно для дня рождения и пола пользователя, что нужно проверять?
     
    #32 _ne_scaju_, 3 июл 2017
    Последнее редактирование: 3 июл 2017
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    функция date может сообщать сколько дней в текущем месяце

    проверять дату на правильность aeyrwbz checkdate, если день рождение, то надо, чтобы дата не находилась в будущем, учитывая часовые пояса, пола обычно два
     
  9. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @denis01
    Посмотрел примеры:
    PHP:
    1. if (checkdate($month, $day, $year)) echo "Дата корректная";
    2.   else echo "Дата некорректная";
    но перед проверкой нужно выставлять от какого и до какого она корректная?

    Сразу напишу второй вопрос, на счет проверок логина пароля на правильность чтобы не чего лишнего туда не писали, стоил ли проверять именно так, или есть лучше способ?
    PHP:
    1. if(empty($login)){ $live_register = false;  }
    2. if(!preg_match('/^[a-zA-Z0-9-_]+$/', $login)){ $live_register = false;  }
    3. if(!preg_match('/\A(\w){3,20}\Z/', $login)){ $live_register = false;    }
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    нет, выставлять не надо
     
  11. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @denis01
    Warning: checkdate() expects parameter 1 to be long, string given in
    PHP:
    1. if (checkdate($user_month, $user_day, $user_year))
    2. echo "Дата корректная";
    3. else
    4. echo "Дата некорректная";
    То-есть заметил поведения если пользователь не ввел не чего в поля он выкидывает Warning и говорит что дата не корректная, как мне Warning убрать?

    исправил так, не знаю на сколько это правильно:
    PHP:
    1. $user_month = 0;
    2. $user_day = 0;
    3. $user_year = 0;
    4.  
    5. if (checkdate($user_month, $user_day, $user_year))
    6. echo "Дата корректная";
    7. else
    8. echo "Дата некорректная";
     
    #36 _ne_scaju_, 4 июл 2017
    Последнее редактирование: 4 июл 2017
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    если данные от пользователя не цифры, то функцию можно и не запускать, и считать дату не правильной
     
  13. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    не понял это условие надо написать!!!
    @denis01
    Либо лучше так сделать?
    PHP:
    1. if ($user_day>0 and $user_day<31) {} else { $live_register = false; }
    2. if ($user_month>0 and $user_month<12) {} else { $live_register = false; }
    3. if ($user_year>1954 and $user_year<2017) {} else { $live_register = false; }