[TYPO3-english] Flexform questions

Jigal van Hemert jigal.van.hemert at typo3.org
Wed May 9 07:11:53 CEST 2012


On 8-5-2012 23:56, Robert Wildling wrote:
> I do have a script, but the return values are wrong - and I don't why.
> The debug statements through the correct contents, but obviousely I am
> putting them together in a wrong way... the multiselect result list is
> filled with these 3 values:
> Please choose...
> A
> A
> I Have absolutely no idea where the 2 "A"s come from...???
> $optionList[$i] .= array(0=>$row['header'], 1=>$row['uid']); // <-- here
> sth is wrong!!!

The .= operator is a string operator, so it will treat the right side 
argument as a string. The right side argument is an array and when cast 
to a string it will result in "Array".
$optionList[$i] is now a string with the value "Array".

TYPO3 expects the items in the list to be arrays with two elements, the 
first being the label, the second the value. It will probably just do 
$item[0] to get the label. If you do this on a string it will result in 
the first character and just display "A".

Now for the solution. The $config array is passed as a reference which 
makes it possible to directly write to it without using the intermediate 
$optionList array.

In the while loop just use:
$config['items'][] = array($row['header'], $row['uid']);

Jigal van Hemert
TYPO3 Core Team member

TYPO3 .... inspiring people to share!
Get involved: typo3.org

More information about the TYPO3-english mailing list