2017-03-05 1 views
0

Coldfusion 프로젝트에서 작업 중이고 멈추는 것 같습니다. 나는 너무 초조해하지 않기를 바랍니다. 내 프로젝트의 목적은 중첩 된 루프를 사용하여 암호 목록을 만드는 것입니다. 나는 "bert, ernie, oscar"목록의 모든 단어와 함께 콜드, 퓨전, 다이나믹 "목록의 모든 단어를 결합하여 템플릿을 작성하여 글 머리 기호로 된 암호 목록을 작성합니다. 이 템플릿은 List1과 List2라는 두 개의 URL을 처리해야합니다. 가능한 모든 단어 조합을 생성하려면 서로 중첩 된 두 개의 목록 루프를 사용해야합니다.CF 목록 루프를 사용하여 조합 만들기

<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"> 

가 나는 '되도록하려면 (예를 등등 "coldbert", "coldernie", "coldoscar", "fusionbert"와 .. 들어)

이것은 내가 지금까지 무엇을 가지고 여기서 올바른 방향으로 가고 있습니다. 어떤 도움을 주셔서 감사합니다.

+0

먼저 루프 코드를 알아내는 것으로 시작합니다. 그런 다음이를 템플릿으로 사용하는 방법을 알아보십시오. 그러나 위의 한가지 문제점은 호출하는 페이지에만 'URL.list1' 변수가 존재한다는 것입니다. 즉,'loopList.cfm '입니다. – Leigh

+0

... 또한, 혼란을 피하기 위해 인덱스와 변수 이름 모두에'List1'을 사용하지 마십시오. 두 개의 다른 이름을 사용하십시오. – Leigh

답변

3

사이트에없는 페이지를 호출하지 않는 한 http 호출을 할 필요가 없습니다. 템플릿에 함수를 만들 수는 있지만 (별도의 cfc를 사용하기를 원하지만) 암호 조합을 얻으려면이 함수를 호출해야합니다. 당신이 사용자와 cfhttp에있는 경우 "passwordCombos"또한

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

이상 그런 뭔가처럼 ... 그런

<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") /> 

루프는, 사용에 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> 
+0

동의. 숙제 *가 cfhttp를 사용해야하는 경우가 아니라면하지 마십시오. 더 간단한 옵션이 있습니다. – Leigh

관련 문제