Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Хаки » Как добавить дополнительное поле radio в профиль пользователя?

Как добавить дополнительное поле radio в профиль пользователя?


     Все вопросы » Хаки    973

вопрос
Нужно добавить в профиль пользователя поле с выбором мужчина-женщина. Видел модуль на ajax он не подходит. Дополнительные поля через админку тоже не подходят. Нужно именно выбором через radio button

Ответа пока нет


8 комментариев

Hander
Юзер

Hander - -

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

Flash
Эксперт

Flash - -

Хм, получается при нажатии на кнопку - данные все равно не сохраняются?

Hander
Юзер

Hander - -

Сохраняются, НО!
Распишу проще. Например у вас дополнительное поле:
Выбор из списка Мужчина или Женщина
Вы выбрали Женщина и сохранили. Тут все хорошо.
Заходим снова в редактирование, смотрим в поле стоит первое значение Мужчина
и если вы ничего не измените и просто сохраните, у вас будет выбран автоматом Мужчина

А если таких полей более одного, получается полный бардак. С каждой правкой профиля придется заново выставлять все значения

Flash
Эксперт

Flash - -


Все, теперь понял. Тогда можно такой способ. Добавляем доп. поле типа "список", например, с названием "gender", в поле "Значение по умолчанию" вбиваем
male|Мужчина
female|Женщина

Поле "Название" - Пол
Ставим галочку в поле "Поле может быть изменено пользователем?"

Теперь в шаблоне "userinfo.tpl" внизу шаблона вставляем код

<script>
var $select = $('#xf_gender');
$select.find('option').each(function(j, option){
	var $option = $(option);
	var $radio = $('<input type="radio" />');
	$radio.attr('name', $select.attr('name')).attr('value', $option.val());
	if ($option.attr('selected')) $radio.attr('checked', 'checked');
	$select.before($radio);
	$select.before(
	  $("<label />").attr('for', $select.attr('name')).text($option.text())
	);
	$select.before("<br/>");
});
$select.remove();
</script>

Он будет заменять нужный "select" на "radio". Решайте сами - подходит ли такое для ваших целей.

raimonds.zundurs
Юзер

raimonds.zundurs - -

Не работает... ошибка ReferenceError: $ is not defined

Flash
Эксперт

Flash - -

Кстати, а в версии 13 например, нет типа "radio"?))

raimonds.zundurs
Юзер

raimonds.zundurs - -

Нет даже 13.1 ...

Похожие вопросы

наверх