Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   TypoScript практикум (http://forum.typo3.ru/forumdisplay.php?f=27)
-   -   FORM значения type = name=select подставить в valueArray значения с CONTENT (с БД) (http://forum.typo3.ru/showthread.php?t=11086)

brd 10.12.2013 13:38

FORM значения type = name=select подставить в valueArray значения с CONTENT (с БД)
 
Задача состоит в следующем: есть форма, в которой есть select box в который нужно подставить значения с базы данных.
Код:

lib.mainForm.20 = FORM
lib.mainForm.20 {
        type = 68
        formName = Kinder
        accessibility = 1
        method = post
        dataArray {
       
                100{
                        label = Название:
                        type = title=select
                valueArray <lib.Dnz.10.renderObj
                       
                }
        }
}

Код:

lib.Dnz = COA
lib.Dnz{
        10 = CONTENT
        10.table=tx_kinder
    10.select.selectFields= uid, title
    10.select.pidInList=304
    10.renderObj = COA
    10.renderObj{
                        1 = TEXT
                        1.current = 1
                        1.value.field = uid
                        1.label.field = title
        }
       
}

В результате данного кода в selectbox вместо значений с таблицы tx_kinder.uid tx_kinder.uid, подставляется pages.uid, pages.title. Не пойму что не так? Подскажите пожалуйста.

Ивано++ 10.12.2013 19:17

Цитата:

Сообщение от brd (Сообщение 37601)
Задача состоит в следующем: есть форма, в которой есть select box в который нужно подставить значения с базы данных.
Код:

lib.mainForm.20 = FORM
lib.mainForm.20 {
        type = 68
        formName = Kinder
        accessibility = 1
        method = post
        dataArray {
       
                100{
                        label = Название:
                        type = title=select
                valueArray <lib.Dnz.10.renderObj
                       
                }
        }
}

Код:

lib.Dnz = COA
lib.Dnz{
        10 = CONTENT
        10.table=tx_kinder
    10.select.selectFields= uid, title
    10.select.pidInList=304
    10.renderObj = COA
    10.renderObj{
                        1 = TEXT
                        1.current = 1
                        1.value.field = uid
                        1.label.field = title
        }
       
}

В результате данного кода в selectbox вместо значений с таблицы tx_kinder.uid tx_kinder.uid, подставляется pages.uid, pages.title. Не пойму что не так? Подскажите пожалуйста.

В FORM - Не силен, но возможно чем-то помогу:

Если valueArray и правда может поддерживать TS-парсинг скрипта, а не только строки (, то в Вашем случае это будет:

valueArray < lib.Dnz
а не
valueArray <lib.Dnz.10.renderObj

Ну и после еще можно попробовать так:

valueArray.cObject < lib.Dnz

brd 11.12.2013 01:29

Цитата:

Сообщение от Ивано++ (Сообщение 37605)
В FORM - Не силен, но возможно чем-то помогу:

Если valueArray и правда может поддерживать TS-парсинг скрипта, а не только строки (, то в Вашем случае это будет:

valueArray < lib.Dnz
а не
valueArray <lib.Dnz.10.renderObj

Ну и после еще можно попробовать так:

valueArray.cObject < lib.Dnz

Нет данные конструкции результата не принесли:(
Меня непонят почему оно подставляет данные о станице, а не массив значений с tx_kinder

Ивано++ 11.12.2013 11:57

Не знаю, где Вы нашли эту возможность, подставить из БД
но у меня при попытке создать в SELECT - что то кроме OPTION (например = TEXT) - страница перестает загружаться...:(

PHP код:

        
        page.10 
FORM_INT
        page.10 
{
        
                
prefix tx_form
                confirmation 
1
                postProcessor 
{
                    
mail
                    1 
{
                        
recipientEmail 43
                        senderEmail 
43
                        subject 
43
                    
}
                }
                
10 TEXTLINE
                10 
{
                    
name gregre
                    label
.value Edit this label
                
}
                
20 SELECT
                20 
{
                    
name 3
                    label
.value Edit this label
                    
                    10 
TEXT
                    10.value 
= <option>1</option>
                    
                    
20 OPTION
                    20.data 
Option 1
                    
                    30 
OPTION
                    30.data 
Option 2
                    
                    40 
OPTION
                    40.data 
Option 3
                    40.selected 
selected
                    
                
}
                
30 SUBMIT
                30 
{
                    
name 4
                    value 
Submit form
                
}
                
rules {
                    
required
                    1 
{
                        
breakOnError 0
                        showMessage 
1
                        message 
Required
                        error 
This field is required
                        element 
3
                    
}
                }

          
          } 

Если есть оригинал документации, где Вы это нашли, можем разобраться далее...

brd 11.12.2013 12:24

Вот по этой документации http://docs.typo3.org/typo3cms/Typos...orm/Index.html

Ивано++ 11.12.2013 12:27

Цитата:

Сообщение от brd (Сообщение 37611)
Вот по этой документации http://docs.typo3.org/typo3cms/Typos...orm/Index.html

Не вижу здесь ни где про то, что можно подставить значения из БД...:)
Через объект CONTENt - хотя было бы круто.

brd 11.12.2013 12:51

так дело в том что оно работает CONTENT
 
счя поправлю чуток не так написал

brd 11.12.2013 13:02

данные подставляются только не те!!
смотрите в таблице tx_kinder есть записи которые

uid|pid|title|
--------------
5 |304|привет1
2 |304|привет2
4 |304|привет3
6 |304|привет4

pages
uid|pid|title|
304|...|Учреждения
68|...|Регистрация

так вот
Код:

lib.Dnz = COA
lib.Dnz{
        10 = CONTENT
        10.table=tx_kinder
    10.select.selectFields= uid, title
    10.select.pidInList=304
    10.renderObj = COA
    10.renderObj{
                        1 = TEXT
                        1.current = 1
                        1.value.field = uid
                        1.label.field = title
        }
       
}

подствляет с таблицы pages хотя я в CONTENT четко указал 10.table=tx_kinder.
Результат
Код:

lib.mainForm.20 = FORM
lib.mainForm.20 {
        type = 68
        formName = Kinder
        accessibility = 1
        method = post
        dataArray {
       
                100{
                        label = Название:
                        type = title=select
                valueArray <lib.Dnz.10.renderObj
                       
                }
        }
}

Вывожу на странице Регистрация с uid 68
результатк кода
Код:

<select name="title" id="Kinder" size="1" class="form-control col-xs-3 col-sm-6 col-md-9 col-lg-12">
<option value="68">Регистрация</option>
</select>

а должен по идеии
Код:

<select  name="title" id="Kinder" size="1" class="form-control col-xs-3 col-sm-6 col-md-9 col-lg-12">
<option value="3">Привет1</option>
<option value="1">Привет2</option>
<option value="2">Привет3</option>
<option value="4">Привет4</option>
<option value="4">Привет5</option>
</select>


Ивано++ 11.12.2013 13:15

Хм...
Не знаю, у меня не получилось подставить данные в форуму через объект "CONTENT".

brd 11.12.2013 13:25

?
 
А где можно взяглянуть на док. по вашему коду:
Код:

   
        page.10 = FORM_INT
        page.10 {
       
                prefix = tx_form
                confirmation = 1
                postProcessor {
                    1 = mail
                    1 {
                        recipientEmail = 43
                        senderEmail = 43
                        subject = 43
                    }
                }
                10 = TEXTLINE
                10 {
                    name = gregre
                    label.value = Edit this label
                }
                20 = SELECT
                20 {
                    name = 3
                    label.value = Edit this label
                   
                    10 = TEXT
                    10.value = <option>1</option>
                   
                    20 = OPTION
                    20.data = Option 1
                   
                    30 = OPTION
                    30.data = Option 2
                   
                    40 = OPTION
                    40.data = Option 3
                    40.selected = selected
                   
                }
                30 = SUBMIT
                30 {
                    name = 4
                    value = Submit form
                }
                rules {
                    1 = required
                    1 {
                        breakOnError = 0
                        showMessage = 1
                        message = Required
                        error = This field is required
                        element = 3
                    }
                }

         
          }

Это какой то плагин?

Ивано++ 11.12.2013 13:43

Цитата:

Сообщение от brd (Сообщение 37616)
А где можно взяглянуть на док. по вашему коду:
Код:

   
        page.10 = FORM_INT
        page.10 {
       
                prefix = tx_form
                confirmation = 1
                postProcessor {
                    1 = mail
                    1 {
                        recipientEmail = 43
                        senderEmail = 43
                        subject = 43
                    }
                }
                10 = TEXTLINE
                10 {
                    name = gregre
                    label.value = Edit this label
                }
                20 = SELECT
                20 {
                    name = 3
                    label.value = Edit this label
                   
                    10 = TEXT
                    10.value = <option>1</option>
                   
                    20 = OPTION
                    20.data = Option 1
                   
                    30 = OPTION
                    30.data = Option 2
                   
                    40 = OPTION
                    40.data = Option 3
                    40.selected = selected
                   
                }
                30 = SUBMIT
                30 {
                    name = 4
                    value = Submit form
                }
                rules {
                    1 = required
                    1 {
                        breakOnError = 0
                        showMessage = 1
                        message = Required
                        error = This field is required
                        element = 3
                    }
                }

         
          }

Это какой то плагин?

Изначально то, (как полагаю), что Вы используете - это стандартная форма.

http://typo3.org/fileadmin/t3org/ima...orm_wizard.png

Она доступна как стандартный cObject в Typoscript объект.
Двух вариантов:

FORM
FORM_INT (вот его и вставил на странице для тестов)

Ну а документацию, таже самая, что и у Вас...
http://docs.typo3.org/typo3cms/Typos...orm/Index.html

Но у меня не получается в этот объект запихнуть CONTENT на выборку данный их произвольной таблицы... Т.к. если в SELECT вставить, что то отличное от OPTION - то у меня перестает все работать.:)

Ивано++ 11.12.2013 13:44

Вот кстати еще документация:
http://forge.typo3.org/projects/typo...iki/Typoscript

brd 11.12.2013 14:22

Цитата:

Сообщение от Ивано++ (Сообщение 37617)
Изначально то, (как полагаю), что Вы используете - это стандартная форма.

http://typo3.org/fileadmin/t3org/ima...orm_wizard.png

Она доступна как стандартный cObject в Typoscript объект.
Двух вариантов:

FORM
FORM_INT (вот его и вставил на странице для тестов)

Ну а документацию, таже самая, что и у Вас...
http://docs.typo3.org/typo3cms/Typos...orm/Index.html

Но у меня не получается в этот объект запихнуть CONTENT на выборку данный их произвольной таблицы... Т.к. если в SELECT вставить, что то отличное от OPTION - то у меня перестает все работать.:)

Что я окончательно запуталься http://typo3.org/fileadmin/t3org/ima...orm_wizard.png - дополнительный плагин.
И синтакси не такой как у меня!!!

brd 11.12.2013 14:29

?
 
Вложений: 1
Вот:Вложение 525
Да и в док на странице http://docs.typo3.org/typo3cms/Typos...orm/Index.html про FORM_INT ниче нет

brd 11.12.2013 14:36

Можно файлик с ts кодом
 
Можно файлик с ts кодом который вы выполняли на своем сайте, хочу проетстить у ся!

Ивано++ 11.12.2013 15:00

Форму которую Вы вставляете на странице (через мастер создания форм) - это обычный объект FORM_INT. Следовательно его можно использовать в чистом typoscript-коде.

Вот основной шаблон сайта:

PHP код:


page 
PAGE
page.10 
FORM_INT
page.10 
{
        
                
prefix tx_form
                confirmation 
1
                postProcessor 
{
                    
mail
                    1 
{
                        
recipientEmail 43
                        senderEmail 
43
                        subject 
43
                    
}
                }
                
10 TEXTLINE
                10 
{
                    
name gregre
                    label
.value Edit this label
                
}
                
20 SELECT
                20 
{
                    
name 3
                    label
.value Edit this label
                    
                    10 
TEXT
                    10.value 
= <option>1</option>
                    
                    
20 OPTION
                    20.data 
Option 1
                    
                    30 
OPTION
                    30.data 
Option 2
                    
                    40 
OPTION
                    40.data 
Option 3
                    40.selected 
selected
                    
                
}
                
30 SUBMIT
                30 
{
                    
name 4
                    value 
Submit form
                
}
                
rules {
                    
required
                    1 
{
                        
breakOnError 0
                        showMessage 
1
                        message 
Required
                        error 
This field is required
                        element 
3
                    
}
                }

          
          } 

Вот эта конструкция не работает:
PHP код:

10 TEXT
10.value 
= <option>1</option

Если она бы работала, значит можно было бы вставить записи из БД через объект CONTENT.

brd 11.12.2013 16:27

Цитата:

Сообщение от Ивано++ (Сообщение 37622)
Форму которую Вы вставляете на странице (через мастер создания форм) - это обычный объект FORM_INT. Следовательно его можно использовать в чистом typoscript-коде.

Вот основной шаблон сайта:

PHP код:


page 
PAGE
page.10 
FORM_INT
page.10 
{
        
                
prefix tx_form
                confirmation 
1
                postProcessor 
{
                    
mail
                    1 
{
                        
recipientEmail 43
                        senderEmail 
43
                        subject 
43
                    
}
                }
                
10 TEXTLINE
                10 
{
                    
name gregre
                    label
.value Edit this label
                
}
                
20 SELECT
                20 
{
                    
name 3
                    label
.value Edit this label
                    
                    10 
TEXT
                    10.value 
= <option>1</option>
                    
                    
20 OPTION
                    20.data 
Option 1
                    
                    30 
OPTION
                    30.data 
Option 2
                    
                    40 
OPTION
                    40.data 
Option 3
                    40.selected 
selected
                    
                
}
                
30 SUBMIT
                30 
{
                    
name 4
                    value 
Submit form
                
}
                
rules {
                    
required
                    1 
{
                        
breakOnError 0
                        showMessage 
1
                        message 
Required
                        error 
This field is required
                        element 
3
                    
}
                }

          
          } 


Если она бы работала, значит можно было бы вставить записи из БД через объект CONTENT.

У меня не с работало! А какая у вас верия typo3

Ивано++ 11.12.2013 20:47

Цитата:

Сообщение от brd (Сообщение 37623)
У меня не с работало! А какая у вас верия typo3

Это и у меня не будет работать...
Версия TYPO3 4.7.10.

Если убрать строчку:
10 = TEXT
10.value = <option>1</option>

То, все заработает...
Но это не меняет положение вещей...
Т.к. не получилось вставить CONTENT...

brd 11.12.2013 20:55

Цитата:

Сообщение от Ивано++ (Сообщение 37624)
Это и у меня не будет работать...
Версия TYPO3 4.7.10.

Если убрать строчку:
10 = TEXT
10.value = <option>1</option>

То, все заработает...
Но это не меняет положение вещей...
Т.к. не получилось вставить CONTENT...

Код:


page = PAGE
page.10 = FORM_INT
page.10 {
       
                prefix = tx_form
                confirmation = 1
                postProcessor {
                    1 = mail
                    1 {
                        recipientEmail = 43
                        senderEmail = 43
                        subject = 43
                    }
                }
                10 = TEXTLINE
                10 {
                    name = gregre
                    label.value = Edit this label
                }
                20 = SELECT
                20 {
                    name = 3
                    label.value = Edit this label
                   
                    10 = TEXT
                    10.value = <option>1</option>
                   
                    20 = OPTION
                    20.data = Option 1
                   
                    30 = OPTION
                    30.data = Option 2
                   
                    40 = OPTION
                    40.data = Option 3
                    40.selected = selected
                   
                }
                30 = SUBMIT
                30 {
                    name = 4
                    value = Submit form
                }
                rules {
                    1 = required
                    1 {
                        breakOnError = 0
                        showMessage = 1
                        message = Required
                        error = This field is required
                        element = 3
                    }
                }

         
          }

так я так и пробывал без
Код:

10 = TEXT
10.value = <option>1</option>

неработает у вас видно стоит плагин - Form Library, Plugin and Wizard?

brd 11.12.2013 20:57

?
 
Вложений: 1
Вложение 526
я читал что конструкция
Код:

page = PAGE
page.10 = FORM_INT
page.10 {
       
                prefix = tx_form
                confirmation = 1
                postProcessor {
                    1 = mail
                    1 {
                        recipientEmail = 43
                        senderEmail = 43
                        subject = 43
                    }
                }
                10 = TEXTLINE
                10 {
                    name = gregre
                    label.value = Edit this label
                }
                20 = SELECT
                20 {
                    name = 3
                    label.value = Edit this label
                   
                    10 = TEXT
                    10.value = <option>1</option>
                   
                    20 = OPTION
                    20.data = Option 1
                   
                    30 = OPTION
                    30.data = Option 2
                   
                    40 = OPTION
                    40.data = Option 3
                    40.selected = selected
                   
                }
                30 = SUBMIT
                30 {
                    name = 4
                    value = Submit form
                }
                rules {
                    1 = required
                    1 {
                        breakOnError = 0
                        showMessage = 1
                        message = Required
                        error = This field is required
                        element = 3
                    }
                }

         
          }

Работает только с этим плагином

Ивано++ 11.12.2013 21:51

Да, что бы форма работала, нужно установленное это стандартное TYPO3-расширение. Просто данную форму можно также еще и использовать напрямую, минуя мастер создания формы" на сайте как FORM_INT - объект...

brd 12.12.2013 19:49

Спасибо
 
Спасибо я все понял! но дело втом что у меня уже есть рабочие формы на сайте, а кгда я сталю этот плагин все старые форры валятся:(

brd 13.12.2013 21:09

?
 
Люди получилось вывести в select box инфу, только есть одно но, я не мугу управлять занчениями value туда попадают занчения с lable!! на картинке показан результат!
Вложение 527
Код:

<select name="title" id="Kinder" size="1" class="">
<option value="Привет1">Привет1</option>
<option value="Привет3">Привет3</option>
<option value="Привет4">Привет4</option>
</select>

Код:

100 = COA
                100{
                        label = Название:
                        type = title=select
                        valueArray.10.label.cObject=CONTENT   
                        valueArray.10.label.cObject{
                                table=tx_kinder
                                select.selectFields= uid, title
                                select.pidInList=304
                                renderObj = TEXT
                                renderObj.dataWrap = | {field:title},
                                renderObj.prepend= COA
                                renderObj.prepend{
                                                        20=TEXT
                                                        20.value = {field:uid}
                                                        20.insertData=1
                                }
                        } # end valueArray.10.label.cObject
                }#end 100

Можкто поможет в TS разобратся?

Ивано++ 13.12.2013 23:07

Цитата:

Сообщение от brd (Сообщение 37632)
Люди получилось вывести в select box инфу, только есть одно но, я не мугу управлять занчениями value туда попадают занчения с lable!! на картинке показан результат!
Вложение 527
Код:

<select name="title" id="Kinder" size="1" class="">
<option value="Привет1">Привет1</option>
<option value="Привет3">Привет3</option>
<option value="Привет4">Привет4</option>
</select>

Код:

100 = COA
                100{
                        label = Название:
                        type = title=select
                        valueArray.10.label.cObject=CONTENT   
                        valueArray.10.label.cObject{
                                table=tx_kinder
                                select.selectFields= uid, title
                                select.pidInList=304
                                renderObj = TEXT
                                renderObj.dataWrap = | {field:title},
                                renderObj.prepend= COA
                                renderObj.prepend{
                                                        20=TEXT
                                                        20.value = {field:uid}
                                                        20.insertData=1
                                }
                        } # end valueArray.10.label.cObject
                }#end 100

Можкто поможет в TS разобратся?

Полный код посмотреть...:)
Вложение не работает!

brd 20.12.2013 18:01

Сори что долго не отвечал отсутсвовал на работе, был на больничном:(
 
Цитата:

Сообщение от Ивано++ (Сообщение 37633)
Полный код посмотреть...:)
Вложение не работает!

Это полный код селект бокса формы

Код:

lib.mainForm = COA
lib.mainForm.20 = FORM
lib.mainForm.20 {
        type = 68
        formName = Kinder
        accessibility = 1
        method = post

        dataArray {
                10{
                        label = Название:
                        type = title=input
                        required = 1
                       
                }
               
                100 = COA
                100{
                        label = Льготи:
                        type = uid_benefits=select
                        valueArray.10.label.cObject=CONTENT   
                        valueArray.10.label.cObject{
                                table=tx_kinder
                                select.selectFields= uid, title
                                select.pidInList=304
                                renderObj = TEXT
                                renderObj.dataWrap = | {field:title},
                                renderObj.prepend= COA
                                renderObj.prepend{
                                                        20=TEXT
                                                        20.value = {field:uid}
                                                        20.insertData=1
                                }
                        } # end valueArray.10.label.cObject
                }#end 100
               
               

                200.label>
                200.type = submit=submit
                200.value = Зарегистрировать
        }
#        layout = COA
        commentWrap.cObject = COA
    commentWrap.cObject {
    20=TEXT
    20.value = field-{current:1}
    20.insertData=1
  }
  layout(
    <div class="form-group  ###COMMENT###">###LABEL###  <span class="csc-mailform-label ###COMMENT###">###FIELD###</span></div>
  )
        #fieldWrap.wrap =  |
        fieldWrap.postCObject = COA
        fieldWrap.postCObject {
       
                stdWrap.wrap=|<span class="add-on"><i data-time-icon="icon-time" data-date-icon="icon-calendar"></i></span>|
                       
        }
        labelWrap.wrap =|
        REQ = 1
        REQ.labelWrap.wrap = |*
       
       
        redirect = 68
}


Ивано++ 21.12.2013 16:13

Цитата:

Сообщение от brd (Сообщение 37671)
Это полный код селект бокса формы

Код:

lib.mainForm = COA
lib.mainForm.20 = FORM
lib.mainForm.20 {
        type = 68
        formName = Kinder
        accessibility = 1
        method = post

        dataArray {
                10{
                        label = Название:
                        type = title=input
                        required = 1
                       
                }
               
                100 = COA
                100{
                        label = Льготи:
                        type = uid_benefits=select
                        valueArray.10.label.cObject=CONTENT   
                        valueArray.10.label.cObject{
                                table=tx_kinder
                                select.selectFields= uid, title
                                select.pidInList=304
                                renderObj = TEXT
                                renderObj.dataWrap = | {field:title},
                                renderObj.prepend= COA
                                renderObj.prepend{
                                                        20=TEXT
                                                        20.value = {field:uid}
                                                        20.insertData=1
                                }
                        } # end valueArray.10.label.cObject
                }#end 100
               
               

                200.label>
                200.type = submit=submit
                200.value = Зарегистрировать
        }
#        layout = COA
        commentWrap.cObject = COA
    commentWrap.cObject {
    20=TEXT
    20.value = field-{current:1}
    20.insertData=1
  }
  layout(
    <div class="form-group  ###COMMENT###">###LABEL###  <span class="csc-mailform-label ###COMMENT###">###FIELD###</span></div>
  )
        #fieldWrap.wrap =  |
        fieldWrap.postCObject = COA
        fieldWrap.postCObject {
       
                stdWrap.wrap=|<span class="add-on"><i data-time-icon="icon-time" data-date-icon="icon-calendar"></i></span>|
                       
        }
        labelWrap.wrap =|
        REQ = 1
        REQ.labelWrap.wrap = |*
       
       
        redirect = 68
}


Прикльно... взял на зметку, хотя есть еще очень классное расширение по формам formhandler

brd 22.12.2013 04:24

Цитата:

Сообщение от Ивано++ (Сообщение 37677)
Прикльно... взял на зметку, хотя есть еще очень классное расширение по формам formhandler

ну мне всетаки остался один шажок кототрый я не могу преодалеть значение value в selectbox, ктото может подсказать как можно это исправить? Напомню что в value подставляются значения с label
Код:

<select name="title" id="Kinder" size="1" class="">
<option value="Привет1">Привет1</option>
<option value="Привет3">Привет3</option>
<option value="Привет4">Привет4</option>
</select>

Код:

100 = COA
                100{
                        label = Название:
                        type = title=select
                        valueArray.10.label.cObject=CONTENT   
                        valueArray.10.label.cObject{
                                table=tx_kinder
                                select.selectFields= uid, title
                                select.pidInList=304
                                renderObj = TEXT
                                renderObj.dataWrap = | {field:title},
                                renderObj.prepend= COA
                                renderObj.prepend{
                                                        20=TEXT
                                                        20.value = {field:uid}
                                                        20.insertData=1
                                }
                        } # end valueArray.10.label.cObject
                }#end 100



Часовой пояс GMT +4, время: 19:44.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot