Frage
Gibt es eine bessere Möglichkeit, Folgendes zu schreiben?
<cfloop list="#qry.Columnlist#" index="FieldName">
<cfset "form.#FieldName#" = Evaluate("qry.#FieldName#")>
</cfloop>
Diese Schleife weist jedes Feld in der Abfrage einem entsprechenden Formularfeld zu. Ich verstehe, dass die Evaluse -Funktion gemieden wird.
Lösung
<cfloop list="#qry.Columnlist#" index="FieldName">
<cfset form[FieldName] = qry[FieldName][1]>
</cfloop>
?
Andere Tipps
Angenommen, Sie geben einen einzelnen Datensatz zurück, der folgende funktioniert.
<cfloop list="#qry.Columnlist#" index="FieldName">
<cfset "form.#FieldName#" = qry[FieldName][1]>
</cfloop>
Tangential, aber wenn Sie über mehrere Zeilen einer Abfrage geschleudert haben, können Sie die verwenden currentRow
Variable im Abfrageobjekt, um dasselbe wie die akzeptierte Antwort zu tun.
<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow