2017-06-26 2 views
0

J'ai un problème pour obtenir et travailler sur une structure contenant des noms de variables dynamiques. J'ai une structure cfStruct qui contient une autre structure EMAILS. Dans la dernière structure, le maximum d'éléments est 4Coldfusion - Noms de variables de structure et dynamiques

Voici ma structure pour EMAILS

EMAILS":{"1":"[email protected]","2":"[email protected]","3":"[email protected]"} 

je tente de créer une variable pour chaque élément de cette structure si elle existe en faisant cela. Néanmoins cela ne fonctionne pas:

<cfif IsDefined("cfStruct.EMAILS")> 
     <cfloop from="1" to="5" index="i"> 
      <cfif StructKeyExists(cfStruct.EMAILS, '#i#') > 
       <cfset setVariable("EMAIL_#i#", "#cfStruct.EMAILS.i#" > 
      <cfelse> 
       <cfset setVariable("EMAIL_#i#", '') > 
      </cfif> 
     </cfloop>  
    <cfelse> 

Pourriez-vous m'aider s'il vous plaît à résoudre le problème?

Cordialement,

+0

Que pensez-vous de cela?

Répondre

0

je résolu le problème était un problème de syntaxe:

<cfloop from="1" to="5" index="i"> 
     <cfif StructKeyExists(cfStruct.EMAILS, '#i#') > 
      <cfset setVariable("EMAIL_#i#", "#cfStruct.EMAILS[i]#") > 
     <cfelse> 
      <cfset setVariable("EMAIL_#i#", '') > 
     </cfif> 
    </cfloop> 
0

à proprement parler, vous devez utiliser cfStruct.EMAILS [ "# i #"] au lieu de « # cfStruct.EMAILS [je]#". C'est-à-dire,

<cfloop from="1" to="5" index="i"> 
    <cfif StructKeyExists(cfStruct.EMAILS, "#i#") > 
     <cfset setVariable("EMAIL_#i#", cfStruct.EMAILS["#i#"]) > 
    <cfelse> 
     <cfset setVariable("EMAIL_#i#", '') > 
    </cfif> 
</cfloop>