Перейти к публикации

Редактирование дополнительных полей пользователя


Рекомендованные сообщения

Здравствуйте!

На странице профиля пользователя мы можем выводить дополнительные поля для редактирования посредством следующего тега:

{xfields}
Однако это нам не позволяет полноценно работать над их оформлением. Поэтому я "вытащил" их оттуда и просто вставил в код редактирования профиля. Например, у меня есть дополнительное поле bithday и в коде оно выглядит так:
<input type="text" name="xfield[birthday]" id="xfield[birthday]" value="[xfvalue_birthday]">[/code]

​Всё хорошо, оно полнеценно редактируется пользователем, сохраняется. Но что делать с полями типа [b]select[/b]?

Пользователь при редактирвании может спокойно выбрать любой из [b]option[/b]'ов [b]select[/b]'а и выбранное им сохраняется при сохранении страницы. Но вот когда пользователь вновь меняет информацию о себе, когда он просто переходит на страницу редактирования информации, все значения [b]select[/b] сбрасываются. Все значения [b]input[/b]'ов сохраняется благодаря заполненному [b]value=""[/b], а вот что делать с [b]select[/b]?

С уважением, Александр.

Сайт

Ссылка на сообщение
Поделиться на других сайтах

Только что проверил, select как вы говорите не сбрасывается. При сохранении подставляется selected и выбран нужный элемент.

Ссылка на сообщение
Поделиться на других сайтах

Только что проверил, select как вы говорите не сбрасывается. При сохранении подставляется selected и выбран нужный элемент.

Я имею ввиду при повторном открытии страна редактирования - в ней самой он сбрасывается.

Ссылка на сообщение
Поделиться на других сайтах

Что значит при повторном открытии? То есть, человек выбрал, не сохранил, после вернулся, а скрипт ему показал ранее известный вариант и как же скрипт мог не догадаться что нужно выбрать? - Так я понимаю?

Еще раз повторю, select как вы говорите не сбрасывается.

Изменено пользователем Mufasa
Ссылка на сообщение
Поделиться на других сайтах

Что значит при повторном открытии? То есть, челочек выбрал, не сохранил, после вернулся, а скрипт ему показал ранее известный вариант и как же скрипт мог не догадаться что нужно выбрать? - Так я понимаю?

Еще раз повторю, select как вы говорите не сбрасывается.

Смотрите. Я захожу на свою страницу: скриншот. У меня были выбраны поля "Образование" и "Сфера деятельности".

Потом я нажимаю редактировать и эти поля сбрасываются, никакой selected им не прописывается: скриншот.

Вот код в шаблоне, который отвечает за эти selectы.


<div class="label">Образование:</div>

  <div class="info">

   <select name="xfield[education]" id="xf_education">

	<option value="0">-- Выберите --</option>

	<option value="1">Среднее</option>

	<option value="2">Среднее профессиональное</option>

	<option value="3">Высшее незаконченное</option>

	<option value="4">Высшее</option>

   </select>

  </div>

  <div class="clr"></div>


  <div class="label">Деятельность:</div>

  <div class="info">

   <select name="xfield[worksphere]" id="xf_worksphere">

	<option value="0">-- Выберите --</option>

	<option value="1">Информационные технологии, интернет, телеком</option>

	<option value="2">Бухгалтерия, управленческий учет, финансы предприятия</option>

	<option value="3">Маркетинг, реклама, PR</option>

	<option value="4">Административный персонал</option>

	<option value="5">Банки, инвестиции, лизинг</option>

	<option value="6">Управление персоналом, тренинги</option>

	<option value="7">Автомобильный бизнес</option>

	<option value="8">Безопасность</option>

	<option value="9">Добыча сырья</option>

	<option value="10">Искусство, развлечения, масс-медиа</option>

	<option value="11">Консультирование</option>

	<option value="12">Медицина, фармацевтика</option>

	<option value="13">Наука, образование</option>

	<option value="14">Государственная служба, некоммерческие организации</option>

	<option value="15">Продажи</option>

	<option value="16">Производство</option>

	<option value="17">Страхование</option>

	<option value="18">Строительство, недвижимость</option>

	<option value="19">Транспорт, логистика</option>

	<option value="20">Туризм, гостиницы, рестораны</option>

	<option value="21">Юриспруденция</option>

	<option value="22">Спортивные клубы, фитнес, салоны красоты</option>

	<option value="23">Инсталляция и сервис</option>

	<option value="24">Закупки</option>

	<option value="25">Работа на дому</option>

	<option value="26">Студент</option>

	<option value="27">Другое</option>

   </select>

  </div>

  <div class="clr"></div>

Там просто никак не указывается selected. С input проще, прописал в value значение этого же поля через xfgiven_, а здесь как?

Изменено пользователем Lashchevsky
Ссылка на сообщение
Поделиться на других сайтах

При чем здесь ваш код? Откройте шаблон Default и посмотрите на тег отвечающий за вывод дополнительных полей профиля, он выглядит так: {xfields}


<tr id="">

<td>Пол:</td>

<td class="xprofile" colspan="2"><select name="xfield[sex]" id="xf_sex"><option value="0" selected>Мужчина</option>

<option value="1">Женщина</option>

</select></td>

</tr>

для примера

Ссылка на сообщение
Поделиться на других сайтах

У меня в коде {xfields} вообще не используется.

Он не позволяет расставлять всё как я хочу. Одни поля - в одном столбце, другие - в другом. Он просто выводит список из всех имеющихся. Я этот тег убрал и все дополнительные поля прописал самостоятельно. С {xfields} проблем не было. А вот если руками вставить - то вот то, о чём я говорю.

Ссылка на сообщение
Поделиться на других сайтах

Так с этого и нужно было начинать. Вариантов два, или править скрипт (что, в принципе, я вижу не логичным), или оформить стандартный вывод средствами js+css.

Ссылка на сообщение
Поделиться на других сайтах

Всё сделал.

Для тех, кому пригодится.

В самом конце шаблона я прописываю. Предположим, из всех дополнительных попользователя мне нужно вставить в любое место шаблона useinfo.tpl конкретно один select, который называется, предположим, education. Для этого я в самом конце шаблона создаю блок:


<div class="xfields">{xfields}</div>

В том месте шаблона, куда я хочу вставить этот select, я прописываю:

<div class="education"></div>

Затем, в самом конце, даже после div class="xfields", я прописываю jQuery скрипт следующего содержания:

$(function(){		

    $('#xf_education').clone().appendTo($('.education'));

    $(".xfields").empty();

});

В итоге этот select просто копируется из общего xfields в любое место шаблона, а всё содержимое блока с xfields стирается, так как на странице не может находится одновременно два одинаковых select (иначе будут сбои).

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...