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>
1 answers
<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.