2013-07-25 1 views
0

좋아요. 그래서 자바 스크립트에서 루프를 채워야하는 select 문이 있습니다. 나는 JS에 대한 아주 기본적인 지식을 가지고있다. 나는 여기에 아주 기본적인 coldfusion을 사용하고있다. 하나는 클라이언트 측이고 다른 하나는 서버 측 문제입니다.다른 자바 스크립트를 통해 반복문을 선택하십시오.

내 cfloop가 자바 스크립트 내부에있는 루프를 통과하는 첫 번째 select 문이 필요합니다. 나는

<cfoutput> 

    <script type='text/javascript' src='/jquery-1.8.2.js'></script> 
    <script type="text/javascript"> 
    function changeHiddenInput (objDropDown) 
    { 
     var objHidden = document.getElementById("hiddenInput"); 
     objHidden.value = objDropDown.value; 
    } 

    </script> 
    </head> 
    <body> 

    <cfquery name="Types" datasource="DSN"> 
    SELECT Taking.*, Type.* 
    FROM Taking 
    INNER JOIN Type ON Taking.Taking_TypeID = Type.Type_ID 
    ORDER BY Type_ID 
    </cfquery> 

    <form>How many to change? 
     <select id="dropdown" name="dropdown" onchange="changeHiddenInput(this)"> 
     <cfloop index="ABC" from="1" to="12" step="1"> 
      <option value="#ABC#">#ABC#</option> 
     </cfloop> 
     </select> 

     <input type="text" name="hiddenInput" id="hiddenInput" value="" /> 
    </form> 

    <br> 
    <br> 
    <cfset Changing=4> 
    <script type="text/javascript"> 
    $(document).ready(function(){ 
    <cfloop index="I" from="1" to="#Changing#" step="1"> 
    $('.box#I#').hide(); 
    $('##dropdown#I#').change(function() { 
     $('.box#I#').hide(); 
     $('##div' + $(this).val()).show(); 
    }); 
    </cfloop> 
    }); 
    </script> 

    <form> 
    <cfloop index="J" from="1" to="#Changing#" step="1"> 
    <select id="dropdown#J#" name="dropdown#J#"> 
    <option value="0">Choose</option> 
     <cfloop query="Types" startrow="1" endrow="#Types.recordcount#"> 
      <option value="area#J##Type_ID#">Change over #Type_Name#</option> 
    </cfloop> 
    </select> 
    <br> 

    <cfloop query="Types" startrow="1" endrow="#Types.recordcount#"> 
    <div id="divarea#J##Type_ID#" class="box#J#"> 

     <cfquery name="GetQuestions" datasource="DSN"> 
     SELECT Questions.* 
     FROM Questions 
     WHERE Questions_OrgID=1 
     AND  Questions_TypeID=#Types.Type_ID# 
     ORDER BY Questions_Rank 
     </cfquery> 

     <cfloop query="GetQuestions"> 
      #Questions_Question#<br> 
     </cfloop> 

    </div> 
    </cfloop> 
    <br> 
    <br> 
    </cfloop> 

    </form> 
    </cfoutput> 
+0

아마도 ColdFusion과 JS 코드를 함께 혼합해야하는 이유에 대해 자세히 설명 할 수 있습니까? 추신. "클라이언트 측"코드로 추정되는 SQL 쿼리는 매우 놀랍습니다 ... (단지 Java/C# 경험에서 말하면, CF는 모르겠습니다.) – user1766760

+0

@ user1766760 - .cfm 파일에서 ''태그는 순전히 서버 측 (실제로' duncan

+1

또한 잘못된 각도에서 접근 할 수 있습니다. 당신이 백업하고 당신이 평범한 영어로 (코드가 아닌) 무엇을하려고하는지 알려줄 수 있습니까? – Leigh

답변

0

나는 전혀 아니에요? 그것은 $은 (문서) .ready (함수() {). 나는 사람이 도울 수있는 방법. 모르는 말합니다 경우 어떻게 든 (자바 스크립트 루프에 그것을 변경해야 . 당신이 뭘 하려는지 그러나이 같은 뭔가를 돌 수 있었다 :

$(document).ready(function(){ 
    <cfloop index="I" from="1" to="#Changing#" step="1"> 
    $('.box#I#').hide(); 
    $('##dropdown#I#').change(function() { 
     $('.box#I#').hide(); 
     $('##div' + $(this).val()).show(); 
    }); 
    </cfloop> 
    }); 

을 같은 속으로 :

$(document).ready(function(){ 
    for (var i = 1; i <= #Changing#; i++) 
    { 
     $('.box' + i).hide(); 
     $('##dropdown' + i).change(function() { 
      $('.box' + i).hide(); 
      $('##div' + $(this).val()).show(); 
     }); 
    } 
}); 

업데이트 : 사실 그것은 완전히 JS 솔루션 인 것처럼 들립니다.

function changeHiddenInput (objDropDown) { 
    for (var i = 1; i <= objDropDown.value; i++) 
     { 
      $('.box' + i).hide(); 
      $('##dropdown' + i).change(function() { 
       $('.box' + i).hide(); 
       $('##div' + $(this).val()).show(); 
      }); 
    } 
} 
+0

던컨 이것은 올바른 길입니다. 어떻게 그 값을 가질 수 있습니까? # 변경 # 루프에서 첫 번째 선택 메뉴 (어디에서 1-12 선택할 수 있습니까? 내가 뭘하는지 모르기 때문에 내 예제에서는 추가 코드가 있습니다.) – Adam

+0

아. 'changeHiddenInput'에서 현재 document.ready()에있는 것을 수행하십시오. ColdFusion에서 글로벌 JS 변수를 기본 최대 값으로 설정하고 싶을 수도 있습니다 : var Changing = # someValue #; – duncan

관련 문제