php — html: не удается загрузить значение даты в форме

#php #html #forms #ultimate-member

#php #HTML #формы #конечный член

Вопрос:

Я использую регистрационную форму из плагина Ultimate Member, в которой каждый пользователь указывает свой день рождения. Поле сохраняется как d / m / Y (например, 17/11/1995) с метакеем с именем «день рождения» в таблице usermeta. После этой регистрации каждый пользователь может добавлять другие формы на мой сайт (которые я создаю вручную с помощью html). В этих формах я использую режим автозаполнения из регистрационных данных, используя:

 value="<?php echo um_user('birthday');?>"
 

Таким образом, если кто-то уже предоставил данные, необходимые форме при регистрации, они уже записаны в соответствующем поле.

 <label for="birthday">Birthday:</label>
<input type="date" id="birthday" value="<?php echo um_user('birthday');?>" name="birthday" required>
 

Проблема в том, что дата не заполняется данными, указанными при регистрации, хотя другие типы данных обычно заполняются. Я попытался решить это с помощью type="datetype" , и это работает, но я не могу управлять вводом с помощью этого типа.

Есть идеи? (Я предпочитаю решения с php или html, потому что я не знаком с Javascript).

Заранее спасибо!

Комментарии:

1. Мой внутренний инстинкт заключается в том, что um_user('birthday') это не текстовый объект. Попробуйте отладку с gettype(um_user('birthday')) ;

2. Это строка. Разве это не должна быть строка? Я решил проблему, но просто дайте мне знать.

Ответ №1:

Я думаю, вам нужно отформатировать дату, чтобы атрибут value был принят. См. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date «значение: строка DOMString, представляющая дату в формате ГГГГ-ММ-ДД, или пустая»

Комментарии:

1. это правильный ответ. ваша дата отформатирована как 17/11/1995, вы должны установить ее как 1995-11-17

2. Это работает! Я сохранил данные в этом формате «Y-m-d», и теперь они отображаются правильно как автоматически заполненные. Большое вам спасибо, ребята, вам обоим.