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.

War es hilfreich?

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
scroll top