Lashchevsky 2 Опубликовано: 2 июня 2014 Рассказать Опубликовано: 2 июня 2014 Здравствуйте! На странице профиля пользователя мы можем выводить дополнительные поля для редактирования посредством следующего тега: {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]? С уважением, Александр. Сайт Цитата Ссылка на сообщение Поделиться на других сайтах
Dj Dance 185 Опубликовано: 2 июня 2014 Рассказать Опубликовано: 2 июня 2014 Только что проверил, select как вы говорите не сбрасывается. При сохранении подставляется selected и выбран нужный элемент. Цитата Ссылка на сообщение Поделиться на других сайтах
Lashchevsky 2 Опубликовано: 2 июня 2014 Рассказать Опубликовано: 2 июня 2014 Автор Только что проверил, select как вы говорите не сбрасывается. При сохранении подставляется selected и выбран нужный элемент. Я имею ввиду при повторном открытии страна редактирования - в ней самой он сбрасывается. Цитата Ссылка на сообщение Поделиться на других сайтах
Dj Dance 185 Опубликовано: 2 июня 2014 Рассказать Опубликовано: 2 июня 2014 (изменено) Что значит при повторном открытии? То есть, человек выбрал, не сохранил, после вернулся, а скрипт ему показал ранее известный вариант и как же скрипт мог не догадаться что нужно выбрать? - Так я понимаю? Еще раз повторю, select как вы говорите не сбрасывается. Изменено 2 июня 2014 пользователем Mufasa Цитата Ссылка на сообщение Поделиться на других сайтах
Lashchevsky 2 Опубликовано: 2 июня 2014 Рассказать Опубликовано: 2 июня 2014 (изменено) Автор Что значит при повторном открытии? То есть, челочек выбрал, не сохранил, после вернулся, а скрипт ему показал ранее известный вариант и как же скрипт мог не догадаться что нужно выбрать? - Так я понимаю? Еще раз повторю, 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_, а здесь как? Изменено 2 июня 2014 пользователем Lashchevsky Цитата Ссылка на сообщение Поделиться на других сайтах
Dj Dance 185 Опубликовано: 2 июня 2014 Рассказать Опубликовано: 2 июня 2014 При чем здесь ваш код? Откройте шаблон 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> для примера Цитата Ссылка на сообщение Поделиться на других сайтах
Lashchevsky 2 Опубликовано: 2 июня 2014 Рассказать Опубликовано: 2 июня 2014 Автор У меня в коде {xfields} вообще не используется. Он не позволяет расставлять всё как я хочу. Одни поля - в одном столбце, другие - в другом. Он просто выводит список из всех имеющихся. Я этот тег убрал и все дополнительные поля прописал самостоятельно. С {xfields} проблем не было. А вот если руками вставить - то вот то, о чём я говорю. Цитата Ссылка на сообщение Поделиться на других сайтах
Dj Dance 185 Опубликовано: 2 июня 2014 Рассказать Опубликовано: 2 июня 2014 Так с этого и нужно было начинать. Вариантов два, или править скрипт (что, в принципе, я вижу не логичным), или оформить стандартный вывод средствами js+css. Цитата Ссылка на сообщение Поделиться на других сайтах
Lashchevsky 2 Опубликовано: 2 июня 2014 Рассказать Опубликовано: 2 июня 2014 Автор Всё сделал. Для тех, кому пригодится. В самом конце шаблона я прописываю. Предположим, из всех дополнительных попользователя мне нужно вставить в любое место шаблона 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 (иначе будут сбои). Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.