使用CF List Loops创建组合

时间:2017-03-05 21:41:45

标签: coldfusion nested-loops

我正在进行Coldfusion项目,我似乎陷入了困境。我是新手,所以我希望自己不要太懈怠。我的项目的目的是通过使用嵌套循环创建密码列表。我要设计一个模板,它结合了列表中的所有单词"冷,融合,动态"列出所有单词" bert,ernie,oscar"生成一个项目符号密码的项目符号列表。此模板应处理名为List1和List2的两个URL参数。我必须使用彼此嵌套的两个列表循环来生成所有可能的单词组合。 (例如" coldbert"," coldernie"," coldoscar"," fusionbert"等等......)

这是我到目前为止所做的:

<cfinclude template="header.cfm">
<body>

<h2>Loop List</h2>


<cfhttp url="looplist.cfm?List1=cold,fusion,dynamic&List2=bert,ernie,oscar" method="get">

<CFLOOP LIST="#URL.List1#"
INDEX="List1">
<UL><CFOUTPUT>#List1#</CFOUTPUT></UL><br>
</CFLOOP>


<cfinclude template="footer.cfm">

我想确保我在这里朝着正确的方向前进。谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

除非您正在呼叫您网站上不存在的网页,否则我认为无需进行http呼叫。你可以在模板中创建一个函数(虽然我更喜欢它在一个单独的cfc中)并调用它来获取你的密码组合。有点像...

<cffunction name="getPasswordCombos" returntype="string">
    <cfargument name="list1" type="string" required="true" />
    <cfargument name="list2" type="string" required="true" />

    <cfset var passwordCombos = "" />
    <cfset var i = "" />
    <cfset var j = "" />

    <!--- your combo generation logic might look something like --->
    <cfloop list="#arguments.list1#" index="i">
        <cfloop list="#arguments.list2#" index="j">
            .....
            <!--- set passwordCombos logic here --->
            .....
        </cfloop>           
    </cfloop>

    <cfreturn passwordCombos />
</cffunction>

然后,

<cfset passwordCombos = getPasswordCombos("cold,fusion,dynamic", "bert,ernie,oscar") />

然后遍历&#34; passwordCombos&#34;

<ul>
    <cfloop list="#passwordCombos#" index="i">
        <li>#i#</li>
    </cfloop>
</ul>

此外,如果您必须使用CFHTTP,请使用cfhttpparam传入参数。它更干净。

<cfhttp result="result" url="looplist.cfm" method="GET">
    <cfhttpparam name="list1" type="url" value="cold,fusion,dynamic">
    <cfhttpparam name="list2" type="url" value="bert,ernie,oscar">
</cfhttp>