2016-06-30 10 views
0

Ich habe ein Stück Code, wo ich versuche, einige Preise mit anderen Preisen zu ersetzen.Liste mit anderer Liste ersetzen

FORM.GETSELECTION -2,-1,30.0000 
FORM.GETSELECTIONTEXT 0,850,0 
FORM.GET_ITEMS YES~25.17,YES~250.0,YES~150.0 

Was ich versuche, ist: -2 Wert von form.get_items vor dem Komma nach ~ Zeichen haben wird, weil es in Position 1 ist.

und wenn der Wert -1 ist, bekomme ich den Wert von form.getselectiontext, der 850 sagt.

3. wird seinen Wert aus dem getselection haben, weil es nicht entweder hat -1 oder -2

Ich habe versucht, etwas die Schleife aber verwirrt, was sollte ich versuche eigentlich

<cfset manageprices = form.getselection> 
<cfset indx = 0> 
<cfloop list="#manageprices#" index="op"> 
    <cfset indx = indx + 1> 
    <cfoutput>#op#</cfoutput> 
</cfloop> 

Antwort

0

Also ich denken Sie, dass die Ausgabe, die Sie suchen, 25.17,850,30.0000 ist. Wenn ja, dann könnte man so etwas tun:

<cfscript> 
FORM.GETSELECTION = "-2,-1,30.0000"; 
FORM.GETSELECTIONTEXT = "0,850,0"; 
FORM.GET_ITEMS = "YES~25.17,YES~250.0,YES~150.0"; 


result = []; 
listEach(form.getselection, function(value, index) { 
    switch (value) { 
     case "-2": 
      result.append(listLast(listGetAt(form.get_items, index), "~")); 
      break; 
     case "-1": 
      result.append(listGetAt(form.getselectiontext, index)); 
      break; 
     default: 
      result.append(value); 
    } 
}); 

writeDump(result); 
writeDump(arrayToList(result)); 
</cfscript> 

Beispiel: http://trycf.com/gist/d9e4d20f07b76e0b2cbc8d140a097e29/acf11?theme=monokai

Ich bin nicht sicher, welche Version von Coldfusion Sie verwenden - der obige Code wird 11 auf Coldfusion arbeiten oder höher. Wenn Sie eine ältere Version verwenden, dann anstelle listEach der Verwendung können Sie eine einfache Schleife tun und sich den aktuellen Index verfolgen, so etwas wie:

<cfscript> 
FORM.GETSELECTION = "-2,-1,30.0000"; 
FORM.GETSELECTIONTEXT = "0,850,0"; 
FORM.GET_ITEMS = "YES~25.17,YES~250.0,YES~150.0"; 


result = []; 
index = 0; 
for(value in form.getselection) { 
    index++; 
    switch (value) { 
     case "-2": 
      arrayAppend(result, listLast(listGetAt(form.get_items, index), "~")); 
      break; 
     case "-1": 
      arrayAppend(result, listGetAt(form.getselectiontext, index)); 
      break; 
     default: 
      arrayAppend(result, value); 
    } 
}; 

writeDump(result); 
writeDump(arrayToList(result)); 
</cfscript> 

Beispiel: http://trycf.com/gist/38e8f85539886faf3ec9202688ca9c9f/acf?theme=monokai

Verwandte Themen