Intereting Posts
Как я могу перенаправить пользователя после ввода неправильного пароля? Получать случайные сообщения между конкретными датами / определенного возраста Редактирование комментария Ответить Ссылка Пользовательский тип сообщения не вытягивается в виджет Заменить атрибут__запуска в H2 в условном теге? Как выводить все таксономические ссылки из пользовательского типа сообщений в меню? Хранить иерархию страниц в wp_list_pages, даже если на ребенка или внука Add_action не вызывает функцию обратного вызова Как сделать изображение видеоролика YouTube отображаемым в виде миниатюры в списке сообщений в блоге Попытка подсчитать общее количество абзацев внутри статьи в блоге Показывать дату события вместо даты в календаре календаря по умолчанию Длинные имена опций терпят неудачу? Отправить письмо активации пользователю после регистрации Понимание рабочего процесса плагина создания формы 2 Петли на одной странице – разбиение на две части петли игнорирует массив исключенных должностей

Пользовательское поле профиля с днем ​​рождения. Проблемы с <select>

Я сделал настраиваемые поля профиля для данных дня рождения.

function my_user_field( $user ) { $birthday_day = esc_attr( get_the_author_meta( 'birthday_day', $user->ID ) ); $birthday_month = esc_attr( get_the_author_meta( 'birthday_month', $user->ID ) ); $birthday_year = esc_attr( get_the_author_meta( 'birthday_year', $user->ID ) ); ?> <h3><?php _e('More About You'); ?></h3> <table class="form-table"> <tr> <th> <label for="birthday"><?php _e('Birthday'); ?> </label></th> <td> <span class="description"><?php _e('When is your birthday?'); ?></span><br> <form action=""> <select name="birthday_day" id="birthday_day"> <?php for ($i=1; $i<=31; $i++) { echo '<option value="'; echo $i; echo '"'; if ($birthday_day == $i ) { echo 'selected'; } echo' >'; echo $i; echo'</option>'; }; ?> </select> <select name="birthday_month" id="birthday_month" onchange="updateDays();"> <option value="1" <?php if ($birthday_month == '1') { ?>selected<?php }?> >January</option> <option value="2" <?php if ($birthday_month == '2' ) { ?>selected<?php }?> >February</option> <option value="3" <?php if ($birthday_month == '3' ) { ?>selected<?php }?> >March</option> <option value="4" <?php if ($birthday_month == '4' ) { ?>selected<?php }?> >April</option> <option value="5" <?php if ($birthday_month == '5' ) { ?>selected<?php }?> >May</option> <option value="6" <?php if ($birthday_month == '6' ) { ?>selected<?php }?> >June</option> <option value="7" <?php if ($birthday_month == '7' ) { ?>selected<?php }?> >July</option> <option value="8" <?php if ($birthday_month == '8' ) { ?>selected<?php }?> >August</option> <option value="9" <?php if ($birthday_month == '9' ) { ?>selected<?php }?> >September</option> <option value="10" <?php if ($birthday_month == '10' ) { ?>selected<?php }?> >October</option> <option value="11" <?php if ($birthday_month == '11' ) { ?>selected<?php }?> >November</option> <option value="12" <?php if ($birthday_month == '12' ) { ?>selected<?php }?>>December</option> </select> <select name="birthday_year" id="birthday_year" onchange="updateDays();"> <?php for ($i=2010; $i>1930; $i--) { echo '<option value="'; echo $i; echo '"'; if ($birthday_year == $i ) { echo 'selected'; } echo' >'; echo $i; echo'</option>'; }; ?> </select> </form> </td> </tr> </table> <?php } function my_save_custom_user_profile_fields( $user_id ) { if ( !current_user_can( 'edit_user', $user_id ) ) return FALSE; update_usermeta( $user_id, 'birthday_day', $_POST['birthday_day'] ); update_usermeta( $user_id, 'birthday_month', $_POST['birthday_month'] ); update_usermeta( $user_id, 'birthday_year', $_POST['birthday_year'] ); } add_action( 'show_user_profile', 'my_user_field' ); add_action( 'edit_user_profile', 'my_user_field' ); add_action( 'personal_options_update', 'my_save_custom_user_profile_fields' ); add_action( 'edit_user_profile_update', 'my_save_custom_user_profile_fields' ); 

И это нормальное сохранение db, но есть сбой. Я могу выбрать, например, «31 февраля», и это плохо. Как я могу сделать для них проверку? Я хочу, если бы пользователь выбрал «31 февраля» и отправил форму, тогда его дата будет сохранена как «28 февраля», но если выбранный год – високосный год, то «29 февраля».

Я знаю, что можно сделать более гибкую форму с помощью javascript, но как это сделать с помощью PHP?

Solutions Collecting From Web of "Пользовательское поле профиля с днем ​​рождения. Проблемы с <select>"