2013-04-23 3 views
1

내가 완전히 틀릴 수도 있지만 여기에 <cfif>을 사용하여 드롭 다운의 기본값을 동적으로 선택하는 방법이 있습니까?ColdFusion에서 드롭 다운의 기본값을 동적으로 설정 하시겠습니까?

내가하고 있어요 다음

<select class="field select" id="TimeWithXYZYears" name="TimeWithXYZYears" > 

<option value="00" <cfif #thisInstance.responses.TimeWithXYZYears# eq 0>selected="selected"</cfif>>0</option> 
<option value="01" <cfif #thisInstance.responses.TimeWithXYZYears# eq 1>selected="selected"</cfif>>1</option> 
<option value="02" <cfif #thisInstance.responses.TimeWithXYZYears# eq 2>selected="selected"</cfif>>2</option> 
<option value="03" <cfif #thisInstance.responses.TimeWithXYZYears# eq 3>selected="selected"</cfif>>3</option> 
. 
. 
. 
</select> 

이미 이전 페이지에서 호출 구성 요소 방법에서 TimeWithXYZYears의 값을 받고 있어요, 나는 페이지에 덤핑 시도하고 저를주고있다 정확한 값.

다른 기능을 작성하지 않고이를 수행 할 수있는 방법이 있습니까?

+3

코드가 지금 어떤 방식으로 작동하지 않습니까? 취하고있는 기본 접근 방식이 효과가 있습니다. 추신 : 귀하의 IF 문 안에 ##을 넣지 않아도됩니다. 단지 ' – duncan

+0

글쎄, ##을 삭제했지만 드롭 다운이 페이지로드시 선택된 값을 보여주지 않습니다. . 유사한 의 다른 드롭 다운에 대해서는 7 년 8 개월이어야합니다. 그러나 0 0이 선택된 값으로 표시됩니다. – amsko

+1

이것은 thisInstance.responses.TimeWithXYZ가 0이 될 것을 암시합니다.이 값은 '구성 요소 메소드'에서 얻은 값입니까? 코드를 더 많이 주면 문제 진단에 도움이 될 것입니다. – duncan

답변

-3
<select class="field select" id="TimeWithXYZYears" name="TimeWithXYZYears" > 

    <option value="00" <cfif thisInstance.responses.TimeWithXYZYears eq "00">selected</cfif>>0</option> 
    <option value="01" <cfif thisInstance.responses.TimeWithXYZYears eq "01">selected</cfif>>1</option> 
    <option value="02" <cfif thisInstance.responses.TimeWithXYZYears eq "02">selected</cfif>>2</option> 
    <option value="03" <cfif thisInstance.responses.TimeWithXYZYears eq "03">selected</cfif>>3</option> 
    . 
    . 
    . 
    </select> 

유일한 시간은 # 변수가 출력되거나 따옴표로 묶일 때입니다. 따옴표는 변수가 아니며 따옴표가 없다는 것을 의미합니다. 이것은 대부분의 CFML 태그에 적용됩니다. 또한 HTML의 경우 SELECTED가 많은 경우에 선택됩니다. 그것이 제대로 작동하지 않는 이유는 귀하의 IF 계산서에 귀하의 가치가 정확히 일치하지 않기 때문입니다. 올바른 사용법은 위를 참조하십시오.

+0

또한, 만약 내가 당신이라면 당신의 옵션을 반복하여 다루기가 더 쉬울 것입니다. – FuelieNetworks

+0

변수가 브라우저에 렌더링 될 때 CF에 #가 필요합니다. 그것은 따옴표 안에 있는지 여부와 상관이 없습니다. 위의 주석에서 논의했듯이 문자열로 '00'은 정수로 '0'과 같은 것으로 평가되므로 해당 비교에는 아무런 문제가 없습니다. –

+0

* CF가 [00, 01, ...]을 숫자로 암시 적으로 변환하기 때문에 앞의 0은 무시됩니다. (http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec09af4-7fc3.html) ** 숫자 ** 비교를 수행합니다. (원하는 결과가 다른 결과인지 여부) 선행 0을 고려하려면 [문자열 비교] (http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/)를 수행해야합니다. WSc3ff6d0ea77859461172e0811cbec22c24-7f84.html). – Leigh

관련 문제