2012-10-16 62 views
0

我使用cfloop來動態創建/填充三組輸入字段,以及用於評分系統的一些單選按鈕。輸入字段按預期工作。不過,我在單選按鈕上遇到問題。通過CFLOOP動態設置單選按鈕狀態

出於某種原因(我假設這是一個簡單的原因)單選按鈕並不反映發送給他們的值。例如:說我有3件事我評價。如果循環值爲5,4,3,則單選按鈕全部顯示,就好像傳遞給它們的值是5。就好像所有的字段集都是首先創建的,並且都取第一個值(例如get checked),而不是創建第一個字段集,插入值,然後創建第二個字段集等等(就像I會在一個循環中假設)。同樣,它適用於除單選按鈕之外的所有內容。任何有識之士將不勝感激。

這裏是我的代碼:

<cfloop query="postedBy" startrow="1" endrow="4"> 
    <cfquery name="score" datasource="myDB"> 
    SELECT Round(sum(leadership)/Count(leadership)) as leadership 
      , Round(sum(communication)/Count(communication)) as communication 
      , Round(sum(fairness)/Count(fairness)) as fairness 
      , Round(sum(ethics)/Count(ethics)) as ethics 
      , Round(sum(competence)/Count(competence)) as competence 
    FROM score_base 
    WHERE score_ID = '#postedBy.score_id#' 
    </cfquery> 

    <cfset score_ID=#postedBy.score_id#> 
    <cfoutput>id: #postedBy.score_id#</cfoutput> 
    <cfoutput>My score: #score.leadership#, #score.communication#, #score.fairness#, #score.ethics#, #score.competence#</cfoutput> 

    <cfset counter = counter+1> 
    <cfset "currentScore#score.leadership#" = "checked"> 
    <cfset "currentScoreb#score.communication#" = "checked"> 
    <cfset "currentScorec#score.fairness#" = "checked"> 
    <cfset "currentScored#score.ethics#" = "checked"> 
    <cfset "currentScoree#score.competence#" = "checked"> 

    ... 
    <div class="rating-wrapper"> 
     <cfform> 
     <label>Leadership</label> 
     <cfinput type="radio" class="star" name="leadership" value="1" disabled="disabled" checked = '#currentScore1#'/> 
     <cfinput type="radio" class="star" name="leadership" value="2" disabled="disabled" checked = '#currentScore2#'/> 
     <cfinput type="radio" class="star" name="leadership" value="3" disabled="disabled" checked = '#currentScore3#'/> 
     <cfinput type="radio" class="star" name="leadership" value="4" disabled="disabled" checked = '#currentScore4#'/> 
     <cfinput type="radio" class="star" name="leadership" value="4" disabled="disabled" checked = '#currentScore5#'/> 
     </cfform> 
    </div><!-- END div class="rating-wrapper" --> 
    <div class="rating-wrapper"> 
     <cfform> 
      <label>Communication</label> 
      <cfinput type="radio" class="star" name="communication" value="1" disabled="disabled" checked = '#currentScoreb1#'/> 
      <cfinput type="radio" class="star" name="communication" value="2" disabled="disabled" checked = '#currentScoreb2#'/> 
      <cfinput type="radio" class="star" name="communication" value="3" disabled="disabled" checked = '#currentScoreb3#'/> 
      <cfinput type="radio" class="star" name="communication" value="4" disabled="disabled" checked = '#currentScoreb4#'/> 
      <cfinput type="radio" class="star" name="communication" value="5" disabled="disabled" checked = '#currentScoreb5#'/> 
     </cfform> 
    </div><!-- END div class="rating-wrapper" --> 
    <div class="rating-wrapper"> 
     <cfform> 
     <label>Fairness</label> 
     <cfinput type="radio" class="star" name="fairness" value="1" disabled="disabled" checked = '#currentScorec1#'/> 
     <cfinput type="radio" class="star" name="fairness" value="2" disabled="disabled" checked = '#currentScorec2#'/> 
     <cfinput type="radio" class="star" name="fairness" value="3" disabled="disabled" checked = '#currentScorec3#'/> 
     <cfinput type="radio" class="star" name="fairness" value="4" disabled="disabled" checked = '#currentScorec4#'/> 
     <cfinput type="radio" class="star" name="fairness" value="5" disabled="disabled" checked = '#currentScorec5#'/> 
    </cfform> 
    </div><!-- END div class="rating-wrapper" --> 
    <div class="rating-wrapper"> 
     <cfform> 
     <label>Ethics</label> 
     <cfinput type="radio" class="star" name="ethics" value="1" disabled="disabled" checked = '#currentScored1#'/> 
     <cfinput type="radio" class="star" name="ethics" value="2" disabled="disabled" checked = '#currentScored2#'/> 
     <cfinput type="radio" class="star" name="ethics" value="3" disabled="disabled" checked = '#currentScored3#'/> 
     <cfinput type="radio" class="star" name="ethics" value="4" disabled="disabled" checked = '#currentScored4#'/> 
     <cfinput type="radio" class="star" name="ethics" value="5" disabled="disabled" checked = '#currentScored5#'/> 
     </cfform> 
    </div><!-- END div class="rating-wrapper" --> 
.... 
</cfloop> 

回答

0

想通了:這個問題是我的動態變量。我需要他們在循環結束時復位:

<cfset "currentScore#score.leadership#" = "0"> 
<cfset "currentScoreb#score.communication#" = "0"> 
<cfset "currentScorec#score.fairness#" = "0"> 
<cfset "currentScored#score.ethics#" = "0"> 
<cfset "currentScoree#score.competence#" = "0"> 
</cfloop> 
+0

不知道如何''幫助您檢查右側的單選按鈕:)(或許我們是否缺少一些代碼?)另外,您需要在循環中查詢的任何原因?不知道更多,似乎可以在單個查詢中生成總計。 – Leigh