Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 在会话中循环变量_Loops_Session_Coldfusion_Session Variables - Fatal编程技术网

Loops 在会话中循环变量

Loops 在会话中循环变量,loops,session,coldfusion,session-variables,Loops,Session,Coldfusion,Session Variables,我试图在会话中循环变量。在上一页中,我有一个下拉列表,允许用户选择设置为变量pcount的1到5。根据用户选择的内容,下一页上的表单会重复多次PCount。我需要能够在会话中循环变量,以便它知道firstname_1 firstname_2等。。。然后在我的最后一个屏幕上显示为session session.checkout.info.firstname\u Peoplecount。我不知道如何在会话中正确地编写变量。任何帮助都将不胜感激 <cfset Peoplecount =

我试图在会话中循环变量。在上一页中,我有一个下拉列表,允许用户选择设置为变量pcount的1到5。根据用户选择的内容,下一页上的表单会重复多次PCount。我需要能够在会话中循环变量,以便它知道firstname_1 firstname_2等。。。然后在我的最后一个屏幕上显示为session session.checkout.info.firstname\u Peoplecount。我不知道如何在会话中正确地编写变量。任何帮助都将不胜感激

    <cfset Peoplecount = 1>
    <cfloop
     index="Add"
     from="1"
     to="#session.checkout.quantity.pcount#"
     step="1"
    >
        <!---
        If no checkout, send them to step 1
        --->

        <cfif not structKeyExists(session, "checkout")>
            <cflocation url="enter.cfm" addToken="false">
        </cfif>
        <!--- initial defaults for the section --->
        <cfif not structKeyExists(session.checkout, "info")>
            <cfset session.checkout.info = {firstname_#Peoplecount#=""}>
        </cfif>

        <!--- form fields will default according to session values---> 
        <cfparam name="form.firstname_#Peoplecount#" 
default="#session.checkout.info.firstname_#Peoplecount#">


        <cfif structKeyExists(form, "submit")>

            <cfset errors = []>
        <cfif not arrayLen(errors)>
                <cfset session.checkout.info =
     {firstname_#Peoplecount#=form.firstname_#Peoplecount#}>
               <cfset Peoplecount = PeopleCount + 1>


             </cfloop>
                <cflocation url="ownerCheck.cfm" addToken="false">
            </cfif>

    </cfif>
然后在IF语句中添加所需的键和值,例如

<cfset session.checkout.info["firstname_#Peoplecount#"] = form["firstname_#Peoplecount#"]>

你的问题不清楚,但我能想到两件可能对你有帮助的事情。首先,只在循环中执行必须在循环中执行的操作。在您的情况下,检查session.checkout应该在循环之前完成。其次,对于设置具有动态名称的变量,数组表示法是您的freind。如果这正是您得到的错误,那么您没有执行建议。您继续。。。这应该是最后一个,而且似乎结束标记太多了。如果有疑问,请查看您的数据。在循环中放置一个cfdump,以便查看发生在您身上的情况。@DB7您总是覆盖session.checkout.info的值。相反,在循环开始之前,将其作为空结构创建一次。然后将firstname\u Peoplecount=form[firstname\u Peoplecount]键值附加到其中。我将用一个例子更新我的答案
<cfset session.checkout.info = {
    "firstname_#Peoplecount#" = form["firstname_#Peoplecount#"]
}>
<cfset session.checkout.info = {}>
<cfset session.checkout.info["firstname_#Peoplecount#"] = form["firstname_#Peoplecount#"]>