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

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


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

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

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

{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 и выбран нужный элемент.

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

  02.06.2014 в 20:01, Mufasa сказал:

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

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

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

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

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

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

  02.06.2014 в 20:29, 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 эмодзи.

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

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

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

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