como adicionar o valor da matriz de na coldfusion?

sou um principiante em ColdFusion e quero adicionar valores a uma matriz de dentro de um loop. Escrevi este código, mas não funciona para mim.

<cfset myArray = arrayNew(1)>
<cfloop query="displayQ" >
    <cfquery name="fileListQ" datasource="#REQUEST.datasource#">
        select
            project_id,
            doc_id,
            file_name,
            file_size,
            status,
            status_date,
            timestamp,
            upload_date
        from project_documents
        where
             project_id = "#displayQ.project_id#"
             <cfif bitAnd(SESSION.rights,structFind(rightsList,"RIGHTS_ADMIN")) EQ 0 
                  AND bitAnd(SESSION.rights,structFind(rightsList,"RIGHTS_ENOVIS_PS")) EQ 0 >
                and status = 3
             </cfif>
    </cfquery>
    <cfloop query="fileListQ">
        <tr>
            <CFSET myArray=ArrayAppend(myArray,#fileListQ.doc_id#,"true"); />
            <td><span class="FAKELINK" onClick="doReport('#fileListQ.file_name#','#fileListQ.doc_id#')">
                     #fileListQ.file_name#
                </span>
            </td>
        </tr>
    </cfloop>
</cfloop>
Author: James A Mohler, 2017-03-07

1 answers

Não descreveste como o código não está a funcionar para ti, mas o meu palpite está nesta linha.
<CFSET myArray=ArrayAppend(myArray, #fileListQ.doc_id#, "true"); />

Está a definir o valor de retorno da chamada de função ArrayAppend() para a sua variável array myArray mas essa função devolve um booleano sobre o sucesso ou a falha. Então sua matriz está sendo substituída com o valor de retorno booleano da chamada. Parece que só precisas de mudar para algo como:

<CFSET booleanDidItWork=ArrayAppend(myArray, fileListQ.doc_id, "true") />

Note também que os sinais da libra # não são necessários quando o variable is used as part of a function call like this.

E o ponto-e-vírgula não é necessário ao usar a sintaxe de marcas como esta. Isso só é necessário quando se escreve a sintaxe do cfscript.

Algumas funções de ColdFusion funcionam como você tentou, mas outras não. É por isso que você precisa ler a documentação sobre uma função ao tentar usá-la.

Designação das mercadorias

Adiciona um elemento array a um array. Combina as matrizes quando o argumento da junção é configure para true e o argumento do valor é um array.

Devolve

É verdade, após a conclusão bem sucedida.

Categoria

Funções da matriz

Sintaxe da função

ArrayAppend (array, value [,merge])

Da documentação da lista.

 3
Author: Miguel-F, 2017-03-07 14:52:15