2015-09-25 19 views
0

我想顯示2個圖像,並跳過一個,如果它符合下列條件,(<cfif myDir.name eq property_mainimage>工作正常,然後繼續到下一個圖像和顯示下一個圖像,直到我有一個總共有2張圖像,但是如果標準圖像在第5行中顯示,則循環顯示3張圖像,當標準圖像稱爲第1行時,顯示2張圖像的ColdFusion CFLOOP跳過行或改變的環路endRow

似乎沒有跳過行在cfloop?

我已經嘗試<cfif counter gt 3 > <cfabort>哪些作品,但它顯示的3條圖像依然是標準圖像是在一個大於3行。下面是我正在與...

<cfdirectory directory="C:\Domains\domain.com\wwwroot\uploads\images\#property_ID#\" filter="*.jpg" name="myDir" type="file" sort="datelastmodified"> 
<ul> 
    <cfset counter = 0> 
    <cfset endrowvalue = 3 > 
    <cfloop query="myDir" endRow="#endrowvalue#"> 
    <cfset counter = counter +1 > 
    <li> 
    <cfif right(myDir.name,4) is ".jpg"> 
     <cfif fileexists("C:\Domains\ domain.com\wwwroot\uploads\ images\#property_ID#\#left(mydir.name,len(myDir.name)-4)#.jpg")> 
     <cfif myDir.name eq property_mainimage> 
      DO NOT SHOW THIS IMAGE 
     <cfelse> 
      <cfset endrowvalue = 1 > 
      <cfset myDir.endRow = 1 > 
      test #endrowvalue# 
      test #counter# <img src="#request.root#uploads/images/#property_ID#/#myDir.name#" border="0" width="230px" style="margin-bottom:15px;" /> 
     </cfif> 
     </cfif> 
    </cfif> 
    </li> 
    </cfloop> 
</ul> 

任何幫助將是非常讚賞。

回答

2

我會用一個計數器計數,當你表現出的形象。一旦你到2個圖像顯示跳出循環。

<cfdirectory directory="C:\Domains\domain.com\wwwroot\uploads\images\#property_ID#\" filter="*.jpg" name="myDir" type="file" sort="datelastmodified"> 
<ul> 
    <cfset counter = 1> 
    <cfloop query="myDir"> 
    <li> 
     <cfif right(myDir.name,4) is ".jpg"> 
     <cfif fileexists("C:\Domains\ domain.com\wwwroot\uploads\ images\#property_ID#\#left(mydir.name,len(myDir.name)-4)#.jpg")> 
      <cfif myDir.name eq property_mainimage> 
      DO NOT SHOW THIS IMAGE 
      <cfelse> 
      <!--- image displayed increment coutner ---> 
      <cfset counter++> 
      <img src="#request.root#uploads/images/#property_ID#/#myDir.name#" border="0" width="230px" style="margin-bottom:15px;" /> 
      </cfif> 
     </cfif> 
     </cfif> 
     <cfif counter EQ 2> 
     <cfbreak> 
     </cfif> 
    </li> 
    </cfloop> 
</ul> 
+0

優秀,非常感謝馬特,該訣竅。 – elixireu

0

這是一個格式化的評論。你的代碼有這樣的:

<cfset endrowvalue = 3 > 
<cfloop query="myDir" endRow="#endrowvalue#"> 
    <cfif myDir.name eq property_mainimage> 
     DO NOT SHOW THIS IMAGE 
    <cfelse> 
     <cfset endrowvalue = 1 > 

你將不得不測試它可以肯定的,但我懷疑你的CFLOOP標籤的endRow屬性仍將是3,即使你改變endrowvalue變量的值1.

這可能不是你當前問題的原因,但是,它在我的suspicians是正確的,你要麼在其他地方有問題,或者你正在運行一個毫無意義的命令。