2012-04-13 4 views
0

CFLOOP에서 값을 추출하여 덤프하려고 시도하지만 something을 찾을 수없는 것 같습니다. 첫 번째 루프에서 openHours를 추출하고 두 번째 루프에서 openMinutes를 추출하여 변수에 넣어야합니다. 데이터베이스에 값을 제출하기위한 조회를 실행하십시오.CFLOOP에서 값 얻기

이것은 # 양식 #을 덤프 할 때의 구조체입니다. 나는 [CountVar] #

struct 
FIELDNAMES POSTITNOW,OPENHOURS1,OPENHOURS2,OPENHOURS3,OPENHOURS4,OPENHOURS5,OPENHOURS6,OPENHOURS7 
OPENHOURS1 13 
OPENHOURS2 13 
OPENHOURS3 12 
OPENHOURS4 0 
OPENHOURS5 0 
OPENHOURS6 0 
OPENHOURS7 0 
POSTITNOW YES 
+0

우리가 당신을 도울 수 있으려면 코드를 맨손으로 추출해야합니다. 문제의 원인이되는 물건 만 남겨주세요. 여분의 디스플레이 로직을 모두 제거하십시오. – ale

+0

고마워, 지금 치울거야 – Geo

+0

데이터가 어떻게 생겼는지 보여주는 예를 보는 것도 도움이 될 것이다. – ale

답변

0

난 당신이 원하는 생각, 또는 변수 form.openHours1 문제가 개점 내가 #의 form.openHours 뭔가를 덤프해야하므로 기본적으로 #의 CountVar 번호로 그 수를 얻을 수 있다는 것입니다 얻을 필요 매우 비슷한 :

<cfoutput> 
<cfloop from="1" to="7" index="CountVar">   
    #openHours[CountVar]#<br> 
</cfloop> 
</cfoutput> 
+0

나는 그것을 이미 시도했다. 또한 '시도했지만 작동하지 않았습니다. 우리에게'openHours1 [24]' – Geo

1

보다는 #form.openHours[CountVar]# 당신이 원하는 것은 : 범위로

form["openHours" & CountVar] 

, FORM 또한 구조체이고 당신은 얻을 배열 표기법을 사용할 수 있습니다 값에서.

동적 양식 필드 이름을 사용하기위한 열쇠입니다.

명확히하기 :

form.openHours7 

form["openHours7"] 

일반적 도트 표기법으로 알려진 첫 번째 (배열 표기법 제 동등가 배열 요소를 참조 어떻게 유사한 때문에

괄호 안의 값은 문자열이므로 변수로 바꿀 수 있습니다.

<cfset fieldToUse = "openHours7"> 
<cfoutput>#form[fieldToUse]#</cfoutput> 

또는 리터럴 문자열과 변수의 조합으로 열었습니다.

도트 표기법으로는 실제로 그렇게 할 수 없습니다. (적어도 일반적으로 권장하지 않는 evaluate()을 사용하지 않는 것이 좋습니다.)

The documentation에는 다른 표기법을 비롯하여 구조 작업 방법에 대한 많은 정보가 있습니다.

+0

과 같은 정보를 주셨습니다. 좀 더 명확하게 해 주실 수 있습니까? 나는이 표기법에 익숙하지 않다. 감사합니다 – Geo

+0

@Crematorio : 물론. 그게 더 좋은가요? – ale

+0

네, 훨씬 명확합니다. CF를 사용해 본 경험이 없으므로 모든 것을 설명해 주셔서 감사합니다 – Geo

0

죄송 합니다만, 이것은 나에게 조금 어둡습니다.하지만 결코 뛰어 들지 않습니다. 당신은 같은 수의 오픈 시간과 오픈민을 가지려고합니까? form.fieldnames를 반복 할 수 있을까요? 지금 그대로 서면 openhours1-N이라는 필드가 있습니다. openminutes1-N이 아직 추가되지 않은 것 같습니다. 필드가 openhours로 시작하면 끝에서 번호를 얻은 다음 해당 openminutes 필드를 쉽게 만들 수있는 것처럼 필드 이름을 반복 할 수있는 것처럼 보입니다. Al이 (이전에) 말했듯이, 배열 구조를 사용하여 폼 구조에서 값을 가져올 가능성이 큽니다.

또 다른 생각은 양식 필드 이름이 고유하지 않아도된다는 것입니다. "openhours"가 여러 번 발생하는 경우 ColdFusion에서 해당 내용을 목록으로 전환 한 다음 해당 목록을 반복 할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 나는 내가 가지고있는 비슷한 코드의 이전 버전을 사용했기 때문에 이것에 대한 코드를 다시 작성하는 중이다. 그래서 나는 많은 문제를 겪고있다. 나는이 게시물을 내가 끝나면 업데이트 할 것이다. 다시 한 번 감사드립니다. – Geo