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. Это делает для более чистого кода.

Другие вопросы по тегам