За последние 24 часа нас посетили 22097 программистов и 1652 робота. Сейчас ищут 1120 программистов ...

Как вывести дополнительный вариант выбора в списке предложенных вариантов?

Тема в разделе "PHP для новичков", создана пользователем Kuzma92, 6 мар 2024.

  1. Kuzma92

    Kuzma92 Новичок

    С нами с:
    6 мар 2024
    Сообщения:
    13
    Симпатии:
    0
    Здравствуйте, уважаемые специалисты. Нужна ваша профессиональная помощь. Вопрос заключается в следующем. У меня имеется фрагмент кода, который выводит дату рождения. Мне необходимо добавить для дня, месяца и года перед каждым выбором предложенных вариантов еще дополнительный вариант "Unknown". Вот мой фрагмент кода:

    Код (Text):
    1. <?php
    2. $beast=array("","","");
    3. if($us_list[3]!=0)
    4.     {
    5.     $beast=explode(".",$us_list[3]);
    6.     }
    7.  
    8. echo"<div class='select__birthdate'>
    9.     <div class='select__day'>
    10.     <input id='box__day__unknown' type='radio' name='day' value='Unknown' $sel><label for='box__day__unknown'>Unknown</label>";
    11.     for($n=1;$n<32;$n++)
    12.     {
    13.     $sel="";
    14.     if(strlen($n)==1)$val="0$n";
    15.     else $val=$n;
    16.     if($beast[0]==$val)$sel='checked';
    17.     echo"<input id='box__day__$val' type='radio' name='day' value='$val' $sel><label for='box__day__$val'>$val</label>";
    18.     }
    19. echo"</div>";
    20.  
    21. echo"<div class='select__mon'>
    22.     <input id='box__mon__unknown' type='radio' name='mon' value='Unknown' $sel><label for='box__mon__unknown'>Unknown</label>";
    23.     for($n=1;$n<13;$n++)
    24.     {
    25.     $sel="";
    26.     if(strlen($n)==1)$val="0$n";
    27.     else $val=$n;
    28.     if($beast[1]==$val)$sel='checked';
    29.     echo"<input id='box__mon__$val' type='radio' name='mon' value='$val' $sel><label for='box__mon__$val'>$val</label>";
    30.     }
    31. echo"</div>";
    32.  
    33. echo"<div class='select__year'>
    34.     <input id='box__year__unknown' type='radio' name='year' value='Unknown' $sel><label for='box__year__unknown'>Unknown</label>";
    35.     for($n=1940;$n< date("Y");$n++)
    36.     {
    37.     $sel="";
    38.     if($beast[2]==$n)$sel='checked';
    39.     echo"<input id='box__year__$val' type='radio' name='year' value='$val' $sel><label for='box__year__$val'>$val</label>";
    40.     }
    41. echo"</div></div>";
    42.  
    43. $about_1=str_replace("<br>","\r\n",$about_1 );
    44. ?>
    Но по всей видимости я делаю что-то не правильно, потому как эта конструкция у меня не работает корректно. Подскажите, пожалуйста, правильный вариант. Спасибо за помощь!
     
  2. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    444
    Симпатии:
    87
    Адрес:
    Бавария, Германия
    Добрый день!

    1. Очень не приятно для пользователя, когда без особой необходимости, как в Вашем случае,
    приходится сколить страницу. Поэтому селекторы дат на input radio никто делает.

    2. Советую заменить всё на тэги select и в каждом задать первый option - "Unknown"

    3. Год лучше вводить так:
    HTML:
    1. <input type="text" id="year" name="year" value="Unknown"  minlength="4" maxlength="4">
    4. Это
    PHP:
    1. if(strlen($n)==1) $val="0$n";
    2.   else $val=$n;
    можно заменить на
    PHP:
    1. $val = str_pad($n, 2, "0", STR_PAD_LEFT);
    5. Не плохо бы было добавить обработчи на JS.
    Начинать с ввода года, затем вводить месяц и по введённым значениям определять количество дней в месяце,
    а не так, как сейчас - всегда 31.

    Удачи!
     
    Kuzma92 нравится это.