HTML — значение PHP TextBox перед отправкой

Я создаю регистрационную форму в Concrete5, но предварительно мне нужно получить атрибуты пользователя.

Я использую скрытый ввод, чтобы получить значения следующим образом:

<input type="hidden" name="akID[<?php echo UserAttributeKey::getByHandle('school')->getAttributeKeyID(); ?>][value]" value='<?php echo $_POST['full_name']; ?>'/>

Однако я могу получить это значение только в том случае, если заранее сделаю ошибку, то есть неверно подтвердил пароль, а затем повторно отправил форму.

Любые идеи о том, как получить значения без этого?

С уважением

-1

Решение

Ваш пример немного сбивает с толку.

Сначала позвольте мне объяснить, почему это не работает так, как вы этого хотите.

Вы даете своему скрытому полю значение из $ _POST. $ _POST существует только после того, как вы действительно разместите форму. Таким образом, при первой загрузке страницы $ _POST не существует, поэтому $ _POST [‘full_name’] равно нулю.
Однако, когда вы отправляете форму и возникает ошибка, та же страница перезагружается, но на этот раз существует $ _POST, поскольку страница перезагружается после отправки формы.

Вот что смущает. Если при перезагрузке $ _POST [‘full_name’] имеет значение, это означает, что у вас уже есть поле ‘full_name’, вероятно, в качестве поля ввода текста. Почему тогда вы хотите иметь скрытое поле с точно таким же значением?

Если в этом скрытом поле вы хотите указать значение пользовательского атрибута, вам нужно сделать 2 вещи:
1 — убедитесь, что пользователь вошел в систему, иначе атрибуты недоступны
2 — получить объект информации о пользователе, чтобы получить значение атрибута следующим образом:

$u = new User();
$ui = UserInfo::getByID($u->getUserID());

2- измените значение скрытого поля следующим образом:

value="<?php echo $ui->getAttribute('attribute_handle'); ?>"
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector