2013-04-02 10 views
5

मैं एक रूप है जो कीदो तारों को कैसे सम्मिलित करें और परिणाम को ठंडा करने में एक परिवर्तनीय नाम के रूप में उपयोग करें?

  • नाम प्रारूप में कई क्षेत्रों है है = "क्षेत्र -1"
  • नाम = "क्षेत्र -2"
  • नाम = "क्षेत्र -3"
  • नाम = "क्षेत्र-4"
  • आदि ....

प्रपत्र कार्रवाई पृष्ठ पर, मैं एक पाश का उपयोग करें और पाश के सूचकांक का उपयोग करने के साथ concat करने में सक्षम हो करने में सक्षम होना चाहते हैं एक स्ट्रिंग इस <cfset newField = "field-" & #index#> की तरह उपसर्ग और फिर पिछले पृष्ठ पर फॉर्म फ़ील्ड तक पहुंचने के लिए #Variables.newField# का उपयोग करें।

मैं Evaluate() फ़ंक्शन के साथ खेल रहा हूं, लेकिन कोई भाग्य नहीं है। मैं कोल्डफ्यूजन का अधिक उपयोग नहीं करता, इसलिए मैं सिंटैक्स पर थोड़ा सा हो सकता हूं।

मैं इसे कैसे उपयोग कर रहा हूँ का एक उदाहरण है:

<cfset newField = "form.field-" & #index#> 
<input type="hidden" 
     name="field-<cfoutput>#index#</cfoutput>" 
     value="<cfoutput>Evaluate(Variables.newField)</cfoutput>"> 
+0

यह सिर्फ form.field-1, form.field-2 और आउटपुट आउटपुट करता है। मुझे form.field-1 में संग्रहीत मान की आवश्यकता है, पाठ "form.field-1" नहीं। –

उत्तर

8

आप इस मामले के लिए बिल्कुल भी मूल्यांकन का उपयोग करने की जरूरत नहीं है। कुंजी नाम से चर सामग्री को बस एक्सेस करें।

<cfset newField = "form.field-" & index> 
<cfset value = variables[newField]> 

या सिर्फ

<cfset value = variables["form.field-#index#"]> 

या आप एक मध्यस्थ चर

<cfoutput>#variables["form.field-" & index]#</cfoutput> 
+0

बिंगो, मुझे बस इसे < 'में बदलना पड़ा। बहुत बहुत धन्यवाद, और मुझे क्रेडिट देने से पहले मुझे 5 मिनट का इंतजार करना होगा, लेकिन मैं करूँगा। :-)। –

+0

बहुत बढ़िया। जाहिर है, यह किसी भी संरचना वस्तु के साथ काम करता है - मैं केवल उन संरचनाओं का उपयोग कर रहा था जिनका आपने उल्लेख किया था/प्रश्न में इस्तेमाल किया था। –

4

का उपयोग नहीं करना चाहते हैं, तो variables गुंजाइश के लिए यह निर्धारित करने के लिए कोई ज़रूरत नहीं है। अपने पाश के भीतर, आप बस form गुंजाइश इस तरह से सीधे साहचर्य सरणी अंकन का उपयोग प्रपत्र फ़ील्ड मान पहुँच सकते हैं:

<input type="hidden" name="field-<cfoutput>#index#</cfoutput>" 
value="<cfoutput>#form['field-' & index]#</cfoutput>"> 

अतिरिक्त सुरक्षा के लिए, यह प्रयास करने से पहले प्रत्येक प्रपत्र क्षेत्र के होने की जाँच करने के लिए बुद्धिमान हो जाएगा इसे प्रदर्शित करने के लिए:

<cfif structKeyExists(form, 'field-' & index)> 
    <!--- display field ---> 
</cfif> 
संबंधित मुद्दे