#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», и теперь они отображаются правильно как автоматически заполненные. Большое вам спасибо, ребята, вам обоим.