2010-01-06 5 views
6

Existe-t-il une meilleure façon d'écrire ce qui suit?Evaluer la fonction

<cfloop list="#qry.Columnlist#" index="FieldName"> 
    <cfset "form.#FieldName#" = Evaluate("qry.#FieldName#")> 
</cfloop> 

Cette boucle affecte chaque champ de la requête à un champ de formulaire correspondant. Je comprends que la fonction d'évaluation est évitée.

Répondre

11
<cfloop list="#qry.Columnlist#" index="FieldName"> 
    <cfset form[FieldName] = qry[FieldName][1]> 
</cfloop> 

?

+1

Bonne réponse! Je cherchais une solution à cela aujourd'hui aussi. –

+0

Qu'en est-il de 'evaluate (" qry. # MyArr [i] .foo # ")' J'ai essayé 'qry [myArr [i] [foo]]' mais pas de chance – isurfbecause

+0

@isurfbecause pas sûr de ce que vous demandez là, mais pour l'objet tableau, c'est '[fieldName] [rowIndex]'. Est-ce que 'foo' est le rowIndex? Si c'est le cas, placez d'abord 'myArr [1]' dans un var, puis utilisez-le. CF peut ne pas aimer imbriqué '[]' – Henry

4

En supposant que vous renvoyez un seul jeu d'enregistrements, les opérations suivantes fonctionneront.

<cfloop list="#qry.Columnlist#" index="FieldName"> 
<cfset "form.#FieldName#" = qry[FieldName][1]> 
</cfloop> 
+1

Techniquement, il n'y a rien de mal à cela. Mais vous pouvez aussi aller jusqu'au bout et utiliser la notation de tableau pour les deux côtés du cfset;) – Leigh

+0

Bon point. :) – jarofclay

1

Tangentiel, mais si vous étiez en boucle sur plusieurs lignes d'une requête, vous pouvez utiliser la variable currentRow dans l'objet de requête pour faire la même chose que la réponse acceptée.

<cfset var someStruct = {} /> 
<cfset var colummnList = queryObj.columnList /> 

<cfloop query="queryObj"> 
    <cfset someStruct[currentRow] = {} />   

    <cfloop list="#columnList#" index="fieldName"> 
     <cfset someStruct[currentRow][fieldName] = queryObj[fieldName][currentRow] /> 
    </cfloop> 
</cfloop> 
+0

Très intéressant. Je suis confus en mélangeant la notation de structure et la notation de tableau, mais j'examinerai ceci. Merci! –

+0

Yah Désolé, {} est un raccourci pour StructNew() et [] est un raccourci pour ArrayNew (1) – Bialecki

Questions connexes