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
                    }
                }

         
          }

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


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

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