2016-03-21 6 views
3

私はここにいるので、すべての書式設定エラーを許しません。私はすべてのヘルプトピックを試しています...テーブル見出しの列内のループを通るcfif

私はcoldfusionを使用して、2つを除いてすべての列をテーブル見出しに表示しようとしています。彼らはすべて表示されます。私は何が間違っているのか分かりません。

<cfloop list="#ArrayToList(getTableDataHeading.getColumnNames())#"index="col" > 
    <cfif "#col#" NEQ "itemID" or "#col#" NEQ "locationID"> 
     <th>#col#</th> 
    </cfif> 
</cfloop> 
+1

cfifタグ内のシャープ記号は不要ですが、おそらく問題の原因にはなりません。トラブルシューティングを行うには、最初にアレイを表示してください。次にループの中で#col#を表示してからif文を実行します。 'else else節'のような情報を出力するelse句を追加します。 –

+0

質問には関係ありませんが、ArrayToList関数の必要はありません。非常に古いバージョンのCFを使用していない限り、配列をループすることができます。 –

+0

私は@DanBracukのデバッグに関するヒントを2番目に書いています。基本的なトラブルシューティング手法を理解することは、言語の基礎、IMO、将来的にあらゆる種類の問題を解決するのに役立つものを学ぶことと同じくらい重要です。ダンの提案http://trycf.com/gist/09a3236ae03d8838821a/acf2016?theme=monokaiを使って大まかな例を示します。注意すべき点は、よりシンプルなオプションがありますが、問題をより詳しく説明するために元のコードに残しました。 – Leigh

答えて

3

cfifステートメントで条件が間違っています。 およびの条件であり、またはの条件ではありません。 Learn how operators work here

<cfoutput> 
    <cfloop list="#ArrayToList(getTableDataHeading.getColumnNames())#"index="col" > 
     <cfif col NEQ "itemID" AND col NEQ "locationID"> 
      <th>#col#</th> 
     </cfif> 
    </cfloop> 
</cfoutput> 

また、#記号の不要な使用を避けるようにしてください。 #記号の使用に関するcfifステートメントと私の違いを確認してください。

+0

パーフェクト!本当にありがとう! – malibu65k

+0

@ malibu65kお寄せいただきありがとうございます。 –

+1

@ Malibu65k - 同意します。 OR演算子は間違いなく問題です。 yoiuがCFに初めて追加された場合、リスト関数を使用すると、それぞれの値を個別に比較せずに任意の数の値を処理するためのより簡単なオプションです。http://trycf.com/gist/fd0809564923e16e292e/acf2016?theme=monokai – Leigh

関連する問題