2017-03-07 1 views
0

私はColdFusionの初心者であり、ループ内から配列に値を追加したいと考えています。私はこのコードを書いていますが、それは私のためには機能しません。coldfusionで< cfloop>の配列値を追加する方法は?

<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> 
+0

arrayAppendのドキュメントには、正しく使用する方法の例があります。しかし、配列関数がcfqueryカラムで機能するので、別の変数は必要ないかもしれません。最後に、別のクエリのループ内でクエリを実行することは、ほとんど常に非常に悪い考えです。データソースが同じ場合は、1つのクエリでのみデータを取得する方法を見てください。 –

+0

私はまた、いくつかの記事を読んでドキュメントを読んでいます。リストとして書いて使い方を教えてください。 – vinny

+0

別のクエリでwhere句を使用してvarを使用する – vinny

答えて

2

コードがどのように機能していないのか説明していませんが、私の推測はこの行にあります。

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

あなたは配列変数myArrayArrayAppend()関数呼び出しの戻り値を設定しているが、その機能は、成功または失敗にブール値を返します。したがって、あなたの配列は呼び出しからのブール戻り値で上書きされています。

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

はまた、変数は、このような関数呼び出しの一部として使用されたときにシャープ記号#が必要とされていないことに気づく:あなただけのようなものに変更する必要があるように思えます。

このようなタグ構文を使用する場合、セミコロンは必要ありません。これらは、cfscript構文を書くときにのみ必要です。

ColdFusionの機能の中には、試したように機能するものもあれば、そうでないものもあります。このため、関数を使用しようとするときに、その関数に関するドキュメントを読む必要があります。

説明

アレイに配列要素を追加します。 merge引数がtrueに設定され、value引数が配列の場合に配列を連結します。

戻り値正常に完了した

真、。

カテゴリ

配列関数

関数のシンタックス

ArrayAppend(アレイ、値[、マージ])ArrayAppend documentationから

+0

あなたが私に与えたすべての助けに私に適切な解決策を与えるにもかかわらず、正しく問題を説明していないときに私が言ったことに本当に感謝します...ありがとう – vinny

+0

あなたを助けてくれてうれしいです。 –

関連する問題