Questions & Answers

SOLVED
ascheuch
I'm new here

Werte aus verschachtelter FS_LIST holen

Jump to solution

Hallo Community,

folgende Problemstellung:

Ich habe eine FS_LIST (name = st_product_selection) vom Typ INLINE, in der ich einen Absatz verwende, der wiederum eine FS_LIST (Name = st_prods) vom Typ DATABASE enthรคlt.

Ich mรถchte mir nun im Ausgabetemplate der "รคuรŸeren" FS_LIST eine Liste nur der Datensรคtze, die in der inneren FS_LIST enthalten sind, ausgeben.

Etwas fehlt mir noch. Folgendermassen sieht es bisher aus:

$CMS_FOR(_categories,st_product_selection)$

     $CMS_VALUE(st_product_selection.get(#for.index).get(#global.project.masterLanguage,"st_prods").get().length())$ $-- Gibt mir die korrekte Anzahl der Elemente der inneren FS_LIST aus--$

      $CMS_FOR(_products,_categories.get(#for.index).get(#global.project.masterLanguage,"st_prods").get())$ $-- Was ist falsch ? --$

            $CMS_VALUE(_products.Prodid)$ 

      $CMS_END_FOR$

$CMS_END_FOR$

Leider ist die Konstellation genau so notwendig.

GruรŸ Arnold

0 Kudos
1 Solution

Accepted Solutions

Der Ausdruck im inneren CMS_FOR ist kein Liste, das besagt auch die Fehlermeldung. Der Kommentar "Gibt mir die korrekte Anzahl der Elemente der inneren FS_LIST aus" deutet darauf hin, das das Element in der gelรถschten Code-Zeile aber schon eine Liste war.

Dann sollte es wahrscheinlich so funktionieren:

$CMS_FOR(_category, st_product_selection)$

     $CMS_FOR(_product,_category.get(#global.project.masterLanguage,"st_prods").get())$

            $CMS_VALUE(_product.Prodid)$

      $CMS_END_FOR$

$CMS_END_FOR$

Die รคuรŸere Schleife itertiert รผber die รคuรŸere FS_LIST und liefert Elemente vom Typ FormData. Die innere Schleife holt sich dann die die FS_LIST mit dem Feld-Namen "st_prods" und iteriert รผber dessen Werte.

Peter

View solution in original post

0 Kudos
7 Replies
Peter_Jodeleit
Crownpeak employee

Wie sieht denn die entsprechende Fehlermeldung aus? Ist "Prodid" ein gรผltiger Name im inneren Formular?

Peter
0 Kudos

Hallo,

keine Ausgabe im Template.

Fehler der Vorschau:

04.11.2014 11:25:36.096 ERROR ($CMS_FOR( _products, _categories.get(#for.index).get(#global.project.masterLanguage, "st_prods").get() )$ at 69, 2): Cannot iterate over: class de.espirit.firstspirit.parser.eval.Undefined'

Prodid' ist der Spaltenname in der Tabelle, habe es aber auch mit dem Namen des Formularfeldes versucht.

GruรŸ Arnold

0 Kudos

Ist der Zugriff im 2. CMS_FOR korrekt? Zwei Zeilen hรถher benutzt du einen anderen Zugriff:

$CMS_VALUE(st_product_selection.get(#for.index).get(#global.project.masterLanguage,"st_prods").get().length())$ $-- Gibt mir die korrekte Anzahl der Elemente der inneren FS_LIST aus--$

Peter
0 Kudos

Sorry, die von dir zitierte Zeile brauch ich nicht wirklich, wollte nur sehen, ob ich die korrekte Anzahl der (inneren) Datensรคtze bekomme, was auch der Fall ist.

Also wie folgt:

$CMS_FOR(_categories,st_product_selection)$

$CMS_FOR(_products,_categories.get(#for.index).get(#global.project.masterLanguage,"st_prods").get())$

  $CMS_VALUE(_products.cs_prodid)$ 

$CMS_END_FOR$

$CMS_END_FOR$

st_product_selection = รคuรŸere FS_LIST

st_prods = innere FS_LIST

GruรŸ Arnold

0 Kudos

Der Ausdruck im inneren CMS_FOR ist kein Liste, das besagt auch die Fehlermeldung. Der Kommentar "Gibt mir die korrekte Anzahl der Elemente der inneren FS_LIST aus" deutet darauf hin, das das Element in der gelรถschten Code-Zeile aber schon eine Liste war.

Dann sollte es wahrscheinlich so funktionieren:

$CMS_FOR(_category, st_product_selection)$

     $CMS_FOR(_product,_category.get(#global.project.masterLanguage,"st_prods").get())$

            $CMS_VALUE(_product.Prodid)$

      $CMS_END_FOR$

$CMS_END_FOR$

Die รคuรŸere Schleife itertiert รผber die รคuรŸere FS_LIST und liefert Elemente vom Typ FormData. Die innere Schleife holt sich dann die die FS_LIST mit dem Feld-Namen "st_prods" und iteriert รผber dessen Werte.

Peter
0 Kudos

Vielen Dank, das war's.

Smiley Happy

GruรŸ Arnold

0 Kudos

Super! Schรถn das ich helfen konnte Smiley Wink

Peter
0 Kudos

Type a product name