2016-03-21 7 views
3

Ich bin neu hier, also vergib mir für alle Formatierungsfehler. Ich versuche alle Hilfethemen ...cfif innerhalb Schleife durch Spalten für Tabellenüberschriften funktioniert nicht

Mit Coldfusion versuche ich alle Spalten in einer Tabellenüberschrift mit Ausnahme von 2 von ihnen anzuzeigen. Sie alle zeigen sich. Ich bin mir nicht sicher, was ich falsch mache.

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

Die Nummernzeichen innerhalb des cfif-Tags sind nicht notwendig, verursachen aber wahrscheinlich nicht das Problem. Um das Problem zu beheben, zeigen Sie das Array zuerst an. Zeigen Sie dann innerhalb Ihrer Schleife zuerst # col # an und machen Sie dann Ihre if-Anweisung. Fügen Sie eine else-Klausel hinzu, die Informationen wie 'inside else clause', was Sie erwartet haben und was Sie erhalten haben, ausgibt. –

+0

Nicht im Zusammenhang mit Ihrer Frage, aber die ArrayToList-Funktion ist nicht erforderlich. Sofern Sie nicht auf einer sehr alten Version von CF sind, können Sie das Array durchlaufen. –

+0

Ich zweite @ DanBracuk Tipps zum Debuggen. Die grundlegenden Techniken zur Fehlerbehebung zu erlernen, ist ebenso wichtig wie das Erlernen der Grundlagen der Sprache, IMO und etwas, das Ihnen bei der Lösung aller Arten von Problemen in der Zukunft helfen wird. Hier ist ein grobes Beispiel, das die Vorschläge von Dan http://trycf.com/gist/09a3236ae03d8838821a/acf2016?theme=monokai verwendet. Beachten Sie, dass es einfachere Optionen gibt, aber ich habe den ursprünglichen Code beibehalten, um das Problem besser zu veranschaulichen. – Leigh

Antwort

3

Sie verwenden falsche Bedingung in Ihrer cfif-Anweisung. Sie benötigen AND Bedingung und nicht die OR Bedingung. 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> 

Sie sollten auch versuchen, unnötige Verwendung von # Zeichen zu vermeiden. Überprüfen Sie den Unterschied zwischen Ihrer cfif-Anweisung und meiner bezüglich der Verwendung von # sign.

+0

Perfekt! Vielen Dank! – malibu65k

+0

@ malibu65k Glücklich zu helfen. –

+1

@ Malibu65k - Einverstanden. Der OR-Operator ist definitiv das Problem. Wenn Sie neu in CF sind, ist die Verwendung von Listenfunktionen eine einfachere Option für die Behandlung einer beliebigen Anzahl von Werten, ohne dass ein separater Vergleich für jeden einzelnen benötigt wird: http://trycf.com/gist/fd0809564923e16e292e/acf2016?theme=monokai – Leigh

Verwandte Themen