我正在进行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">
我想确保我在这里朝着正确的方向前进。谢谢你的帮助。
答案 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>