2012-04-03 1 views
0

동시에 데이터베이스 데이터와 사용자 정의 루프를 통합하는 드롭 다운 목록을 만들려고합니다. 데이터베이스에서 오는 데이터를 "선택한"것으로 표시하려면 목록이 필요하지만 사용자가 필요에 따라 목록의 다른 데이터로 변경할 수 있도록해야합니다.ColdFusion 9의 목록 드롭 다운

<select name="openHours#CountVar#"> 
    <cfloop from="0" to="23" index="OpenHours"> 
     <option value="#OpenHours#"><cfif doctorHours.openTime neq ''>#TimeFormat(doctorHours.openTime)#<cfelse>#OpenHours#</cfif></option> 
    </cfloop> 
</select> 
이 코드의 문제는 값이 실제로 #OpenHours#이 격리되기 때문에 값의 나머지 옵션이 사라지고있다 데이터베이스에서 가져온되는 경우

과 :

은보다 구체적으로, 이것은 내가 지금까지 무엇을 가지고 나는 둘 중 하나만 가질 수 있습니다. 또한 업데이트의 경우 올바른 값을 얻으려면 값이 동적이어야합니다.

나는 "선택"옵션에서이 부분

<cfif doctorHours.openTime neq ''> 
    #TimeFormat(doctorHours.openTime)# 
<cfelse> 
    #OpenHours# 
</cfif> 

에게 .. 통합 어떻게 든 다운 목록 내 드롭에 표시 올바른 값을 가지고 있고 또한 목록에 눌러 할 수 있어야하고, 서로를 선택하기 위해 수 필요한 경우 시간 테이블을 업데이트하는 옵션이 있습니까?

내가 필요로하는 사항에 대한 자세한 정보를 추가 :

내가 3 열이있는 DB 테이블이 있습니다. ID, openHours 및 closeHours입니다. 내가 달성하려고하는 것입니다 : 0-23 시간이있는 드롭 다운 목록을 만듭니다. openHours 및 closeHours가 비어 있지 않으면 내 db를 확인하고 그 값을 가져 와서 미리 선택된 값으로 사용하십시오 드롭 다운 목록에. 의사가 오전 9시에 열리고 오후 6시에 닫히면 두 개의 드롭 다운 목록에서 09과 18을 선택하고 업데이트하려면 다른 옵션을 선택할 수 있습니다. 그래서 내 DB 테이블을 확인하고 내 데이터가 드롭 다운 목록의 데이터 중 하나와 일치하는 경우 선택한 것으로 선택하십시오.

지금 더 많은 의미가있는 희망. :)

+0

cfif 닫기 태그가 없습니다. –

+0

그게 내 문제는 아니지만 :) – Geo

+0

@ JoshSiok 아마 내가 내 코드를 예쁘게 보이려고 할 때 그것을 버렸을 것이다. 감사합니다 – Geo

답변

4
<select name="openHours#CountVar#"> 
    <cfloop from="0" to="23" index="OpenHours"> 
     <option value="#OpenHours#"<cfif TimeFormat(doctorHours.openTime,'H') EQ OpenHours> selected="selected"</cfif>>#OpenHours#</option> 
    </cfloop> 
</select> 

이 당신을 위해 무엇을 찾고있는 당신을 제공해야합니다. 목록 0에서 23까지 반복하고 각각을 표시합니다. 표시되는 값이 doctorHours.openTime과 일치하면 선택한 값으로 표시됩니다.

+0

그것이 작동하는 것은 이제는 잘 작동합니다. 하루를 기준으로 올바른 시간을 알기 위해 일을 분리해야하지만, 이것은 내가 알아낼 수있는 것입니다. 내 문제는 두 변수를 비교할 때 올바른 형식을 사용하지 않는다는 것입니다. 다시 감사합니다 – Geo

+0

좀 더 깨끗한 구문을 원한다면 'TimeFormat (doctorHours.openTime,'H ')'대신 'Hour (doctorHours.openTime)'을 사용하십시오. –

3

나는 이것이 당신이 원하는 것 같아요.

<option value="#OpenHours#" <cfif doctorHours.openTime EQ OpenHours>selected="selected"</cfif> >#openHours#</option> 
+0

"#openHours"다음에 해시 표시가 없습니다. –

+0

시도해 주셔서 감사하지만 작동하지 않습니다. – Geo

+0

@Josh - 코드 오타가 수정되었습니다 – Leigh

1

이게 당신이 원하는 것입니까?

<select name="openHours#CountVar#"> 
    <cfoutput query="doctorHours"> 
     <cfif doctorHours.openTime neq ''> 
      <option name="#TimeFormat(doctorHours.openTime)#">#TimeFormat(doctorHours.openTime)#</option> 
     </cfif> 
    </cfoutput> 
</select> 
+0

이 옵션은 데이터베이스 테이블의 데이터 만 표시하므로이 데이터도 변경할 수있는 옵션이 필요합니다. 이 목록에는 내가 데이터베이스에 저장 한 시간 만 표시됩니다. 내가 원한 것은 테이블에서 그 시간 (단 하나)을 가져오고 또한 나의 목록에 0에서 23까지의 시간을 보여주는 것입니다. 그리고 데이터베이스와 시간을 목록으로 비교하고 시간이 일치하는 곳에서 그 값을 선택하십시오. 이해가 되니? – Geo

+0

@Crematorio - 아마도 커피가 더 필요 하겠지만, 당신이 무엇을하고 있는지 아직 명확하지는 않습니다.) 실제 결과의 예와 그 대신 당신이 원하는 것을 질문으로 업데이트 할 수 있습니까? 나는 물건을 따라 움직일 것이라고 생각한다. – Leigh

+0

@Leigh 내 질문을 업데이트했습니다. 더 명확히하기 위해 여전히 나를 필요로하는 경우 알려주십시오. :) – Geo