cfloop через динамические поля формы
У меня есть форма, которая позволяет пользователю добавлять соавторов, поэтому я пытаюсь пройтись по этим полям (если они существуют), но не могу получить значения. "coauthorNo" - это скрытое поле ввода, которое существует только в том случае, если пользователь добавляет 1 или более соавторов. Я тестирую cfoutput на своей странице, чтобы посмотреть, смогу ли я получить значения, но пока не повезло. Это работает на сервере Coldfusion 10.
<cfif IsDefined("FORM.coauthorNo")>
<cfset coAuthCount = listLen("#FORM.coauthorNo#", ",")>
<cfloop from="0" to="#coAuthCount#" index="i">
<cfset CoAuthF = "#FORM['CoAuthFirstName'&i]#">
<cfset CoAuthL = "#FORM['CoAuthLastName'&i]#">
<cfoutput>CoAuth's: #CoAuthF#, #CoAuthL#,</cfoutput>
</cfloop>
</cfif>
Редактировать: изменил cfloop со значения на 1, и это исправило его. Мои динамически созданные поля формы начинались с 1 против 0. т.е. CoAuthFirstName1
1 ответ
К вашему сведению, во всей этой ригамароле нет необходимости. Вы можете легко просмотреть список.
<Cfset lCount = 0/>
<cfif IsDefined("FORM.coauthorNo")>
<cfloop list="#form.coauthorNo#" index="i">
<cfset CoAuthF = FORM['CoAuthFirstName' & lCount]>
<cfset CoAuthL = FORM['CoAuthLastName' & lCount]>
<cfoutput>CoAuth's: #CoAuthF#, #CoAuthL#,</cfoutput>
<Cfset lCount++/>
</cfloop>
</cfif>
И приобретайте привычку исключать знаки фунта, когда вы не выводите материал на страницу или не передаете атрибут в тег типа cfloop. Это делает для более чистого кода.