PDA

Просмотр полной версии : FORM значения type = name=select подставить в valueArray значения с CONTENT (с БД)


brd
10.12.2013, 13:38
Задача состоит в следующем: есть форма, в которой есть 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
Задача состоит в следующем: есть форма, в которой есть 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
В 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) - страница перестает загружаться...:(



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


}

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

brd
11.12.2013, 12:24
Вот по этой документации http://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Form/Index.html

Ивано++
11.12.2013, 12:27
Вот по этой документации http://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Form/Index.html

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

brd
11.12.2013, 12:51
счя поправлю чуток не так написал

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
А где можно взяглянуть на док. по вашему коду:


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/images/FM-content/releases/typo3_4-6/form_wizard.png

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

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

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

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

Ивано++
11.12.2013, 13:44
Вот кстати еще документация:
http://forge.typo3.org/projects/typo3v4-form/wiki/Typoscript

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

http://typo3.org/fileadmin/t3org/images/FM-content/releases/typo3_4-6/form_wizard.png

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

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

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

Но у меня не получается в этот объект запихнуть CONTENT на выборку данный их произвольной таблицы... Т.к. если в SELECT вставить, что то отличное от OPTION - то у меня перестает все работать.:)
Что я окончательно запуталься http://typo3.org/fileadmin/t3org/images/FM-content/releases/typo3_4-6/form_wizard.png - дополнительный плагин.
И синтакси не такой как у меня!!!

brd
11.12.2013, 14:29
Вот:525
Да и в док на странице http://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Form/Index.html про FORM_INT ниче нет

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

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

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



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>

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

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

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



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


}





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

Ивано++
11.12.2013, 20:47
У меня не с работало! А какая у вас верия typo3

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

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

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

brd
11.12.2013, 20:55
Это и у меня не будет работать...
Версия 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
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
Люди получилось вывести в 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
Полный код посмотреть...:)
Вложение не работает!
Это полный код селект бокса формы


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
Это полный код селект бокса формы


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
Прикльно... взял на зметку, хотя есть еще очень классное расширение по формам 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