UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: Sumrakrnd от 29 Марта 2016, 20:37:07

Название: Ограничение вывода справочника в select
Отправлено: Sumrakrnd от 29 Марта 2016, 20:37:07
Доброго времени суток
У меня есть форма, где есть select с подключенным справочником направлений через админку
Возникла проблема, надо ограничить выводимый список в select.
Все направления делятся на 4 категории и вот нужна категория с id 275(допустим)

    <xsl:template match="group[@name = 'otdelenie']" mode="webforms">
        <div>
            <xsl:apply-templates select="field" mode="webforms-otdelenie"/>
        </div>
    </xsl:template>

    <xsl:template match="field" mode="webforms-otdelenie">
        <label>
            <xsl:apply-templates select="." mode="webforms_required"/>
            <xsl:value-of select="@title"/><xsl:text>:</xsl:text>
        </label>
        <xsl:apply-templates select="." mode="webforms_input_type"/>
    </xsl:template>

    <xsl:template match="field[@name = 'otdelenie']" mode="webforms_input_type">
        <div class="stylized_select">
            <select name="{@input_name}"
                    onchange="this.parentNode.getElementsByTagName('input')[0].value = this.options[this.selectedIndex].innerHTML;">
                <xsl:if test="@multiple">
                    <xsl:attribute name="multiple">
                        <xsl:text>multiple</xsl:text>
                    </xsl:attribute>
                </xsl:if>
                <option value=""></option>
                <xsl:apply-templates select="values/item" mode="webforms_input_type"/>
            </select>
            <div class="input_wrapper">
                <input type="text" name="noname" value=""/>
            </div>
        </div>
    </xsl:template>

Заранее спасибо =)
Название: Re: Ограничение вывода справочника в select
Отправлено: aghigay от 29 Марта 2016, 23:56:06
Вот лично у меня нет категории с id 275. Может у кого-то другого найдется?
Название: Re: Ограничение вывода справочника в select
Отправлено: Sumrakrnd от 30 Марта 2016, 01:05:31
Сейчас объясню
Структура:
-Категория1
--Направление
--Направление
-Категория2
--Направление
--Направление
-Категория3
--Направление
--Направление
-Категория4
--Направление
--Направление

Тип данных Направление доступен как справочник.
В Обратной связи создана форма в ней есть поле otdelenie с типом Выпадающий список и выбран справочник Направление.

Но надо чтобы в select выводились Направления из Категории1

Как правильно это сделать?
Может я и знаю способ, но не знаю, что его тут можно применить
Название: Re: Ограничение вывода справочника в select
Отправлено: aghigay от 30 Марта 2016, 01:12:02
Я честно пытаюсь понять что написано, но вижу только сумрак. :-)
Название: Re: Ограничение вывода справочника в select
Отправлено: Sumrakrnd от 31 Марта 2016, 11:40:20
Я посмотрела, и поняла, что зачем я вообще спрашивала про ограничение?...(все-таки уже усталость сказывается)

Вывести-то я могу в select список, таким способом.

    <xsl:template match="group[@name = 'otdelenie'][@pageId = '275']" mode="webforms">
        <div>
            <xsl:apply-templates select="field" mode="webforms-otdelenie"/>
        </div>
    </xsl:template>

    <xsl:template match="field" mode="webforms-otdelenie">
        <label>
            <xsl:apply-templates select="." mode="webforms_required"/>
            <xsl:value-of select="@title"/><xsl:text>:</xsl:text>
        </label>
        <xsl:apply-templates select="." mode="webforms_input_type"/>
    </xsl:template>

    <xsl:template match="field[@name = 'otdelenie' or @name = 'specialist']" mode="webforms_input_type">
        <div class="stylized_select">
            <select name="{@input_name}"
                    onchange="this.parentNode.getElementsByTagName('input')[0].value = this.options[this.selectedIndex].innerHTML;">
                <xsl:if test="@multiple">
                    <xsl:attribute name="multiple">
                        <xsl:text>multiple</xsl:text>
                    </xsl:attribute>
                </xsl:if>
 
<xsl:apply-templates select="document('usel://razdely/273')/udata" mode="webforms_input_type"/>
                <!-- <option value=""></option>
                <xsl:apply-templates select="values/item" mode="webforms_input_type"/>  -->
            </select>
            <div class="input_wrapper">
                <input type="text" name="noname" value=""/>
            </div>
        </div>
    </xsl:template>
  <xsl:template match="udata" mode="webforms_input_type">
<xsl:apply-templates select="page" mode="webforms_input_type"/>
</xsl:template>

<xsl:template match="page" mode="webforms_input_type">
<option><xsl:value-of select="name"/></option>
</xsl:template>

И когда я заполняю форму и делаю ее отправку, на почту приходит письмо, информация приходит вся, но кроме названия Направления.
Я так понимаю, не заполняется field?

Поэтому вопрос как сделать, чтобы данные поля отправились или как сделать чтобы field "заполнялся"
Название: Re: Ограничение вывода справочника в select
Отправлено: aghigay от 31 Марта 2016, 12:04:42
А что должно приходить на почту, если вы никакого значения не передаете? http://htmlbook.ru/html/option
Название: Re: Ограничение вывода справочника в select
Отправлено: Sumrakrnd от 31 Марта 2016, 12:37:23
Вот и проблема, список-то вывела как надо, а как его теперь передать-то ><
Не могу понять куда именно, что писать (
Название: Re: Ограничение вывода справочника в select
Отправлено: aghigay от 31 Марта 2016, 15:06:44
Читайте доку - я не для фана ссылку приложил
Название: Re: Ограничение вывода справочника в select
Отправлено: Sumrakrnd от 31 Марта 2016, 15:45:43
...немного побродила по улице... подышала свежим воздухом... освежила голову чуть-чуть...
Прочла еще раз и доперло  ;D ;D ;D

Спасибо ^^
Название: Re: Ограничение вывода справочника в select
Отправлено: Sumrakrnd от 31 Марта 2016, 16:08:14
Так... нет.. все-таки походу что-то не так ><

Я правильно прописала код?
    <xsl:template match="field[@name = 'otdelenie']" mode="webforms_input_type">
        <div class="stylized_select">
            <select name="{@input_name}"
                    onchange="this.parentNode.getElementsByTagName('input')[0].value = this.options[this.selectedIndex].innerHTML;">
                <xsl:if test="@multiple">
                    <xsl:attribute name="multiple">
                        <xsl:text>multiple</xsl:text>
                    </xsl:attribute>
                </xsl:if>
  <!-- <option value=""></option> -->
<option value="{document('usel://razdely/273')/udata}"></option>
                <xsl:apply-templates select="values/item" mode="webforms_input_type"/>
            </select>
            <div class="input_wrapper">
                <input type="text" name="noname" value=""/>
            </div>
        </div>
    </xsl:template>
Название: Re: Ограничение вывода справочника в select
Отправлено: aghigay от 31 Марта 2016, 16:27:06
Надо еще погулять видимо.
Название: Re: Ограничение вывода справочника в select
Отправлено: Sumrakrnd от 31 Марта 2016, 16:30:35
Уже нельзя :-\
Название: Re: Ограничение вывода справочника в select
Отправлено: aghigay от 31 Марта 2016, 16:41:44
Ну тогда наводящий вопрос:
а зачем было делать какие-то другие options вместо тех, которые уже были? Нужно было просто исправить предыдущие так, как того требовали условия задачи
Название: Re: Ограничение вывода справочника в select
Отправлено: Sumrakrnd от 31 Марта 2016, 16:49:30
Только для этой формы нужен ограниченный список :(
Поэтому его и делаю.
Название: Re: Ограничение вывода справочника в select
Отправлено: aghigay от 31 Марта 2016, 17:01:43
Для этой формы нужен корректный список. Но все остальное должно остаться таким, как в первом посте.
Название: Re: Ограничение вывода справочника в select
Отправлено: Sumrakrnd от 31 Марта 2016, 17:30:47
Т.е. делать еще отдельный справочник(как в данном случае) и подключать его? О_о
Если да, то не подойдет к сожалению (

А так поле с типом выпадающего списка я сделала специально отдельный, чтобы с ним работать.




Название: Re: Ограничение вывода справочника в select
Отправлено: aghigay от 31 Марта 2016, 20:08:55
А справочник-то зачем создавать? У вас есть уже справочник - вопрос в том, как его вывести. А выводите вы его неправильно - в option нет value
Название: Re: Ограничение вывода справочника в select
Отправлено: Sumrakrnd от 01 Апреля 2016, 11:58:15
А справочник-то зачем создавать? У вас есть уже справочник - вопрос в том, как его вывести. А выводите вы его неправильно - в option нет value
Так - <option value="t1">Пример</option> - нужен не этот value получается?
 
тогда как? :(
Название: Re: Ограничение вывода справочника в select
Отправлено: aghigay от 01 Апреля 2016, 12:01:19
Нужен этот value, но вы поменяли основной шаблон на другой. Смотрите исходный код и проверяйте правильно ли он собрался.
Название: Re: Ограничение вывода справочника в select
Отправлено: Sumrakrnd от 01 Апреля 2016, 12:16:49
А почему я меняя в одной форме идентификатор у поля, он так же меняется в другой? ><
Название: Re: Ограничение вывода справочника в select
Отправлено: aghigay от 01 Апреля 2016, 12:17:58
А почему у вас предложение несогласовано?
Название: Re: Ограничение вывода справочника в select
Отправлено: Sumrakrnd от 01 Апреля 2016, 12:25:20
Писала очень быстро не заметила.
Просто проверяла как отправляется другая форма, а с нее не пришло название направления...
Зашла в umi, а у второй формы почему-то у поля со списком стоит идентификатор от формы в которой надо этот список ограничить...
Название: Re: Ограничение вывода справочника в select
Отправлено: aghigay от 01 Апреля 2016, 12:34:05
Идентификатор формы (id) никак не влияет на то, что получает сервер в момент обработки формы
Название: Re: Ограничение вывода справочника в select
Отправлено: Sumrakrnd от 01 Апреля 2016, 12:36:42
Тогда почему раньше отправлялась?
А теперь нет?
И почему, если я поменяла название идентификатора в одной форме, он поменялся в другой?