2011-04-12 10 views
5

का उपयोग करके नया इनपुट तत्व जोड़ें I Zend Framework का उपयोग कर एक प्रोजेक्ट पर काम कर रहा हूं।ज़ेंड फ्रेमवर्क - जावास्क्रिप्ट

मैं एक ऐसा फॉर्म बना रहा हूं जिस पर उपयोगकर्ता एक + चिह्न दबाकर तत्वों का एक सेट जोड़ सकते हैं।

ज़ेंड फ्रेमवर्क फॉर्म से मूल्यों की सरणी प्राप्त करने के लिए सबफॉर्म और सजावटी का उपयोग करता है।

ये जब पेज

प्रदर्शित किया जाता है कैसे जावास्क्रिप्ट के साथ बनाए गए नए क्षेत्रों है कि मॉडल में एकीकृत करता दिखाई देगा?

उत्तर

5

एक Zend_Form करने के लिए ग्राहक पर गतिशील रूप से जोड़ने के खेतों का सबसे अच्छा प्रदर्शन है जिससे मैं परिचित हूँ जेरेमी केंडल से आता है:

http://www.jeremykendall.net/2009/01/19/dynamically-adding-elements-to-zend-form/

तकनीक का नतीजा यह जोड़ना है/पर कॉल एक preValidation() विधि फॉर्म में लापता फ़ील्ड के लिए पोस्ट की जांच करने के लिए फॉर्म। यदि ऐसा कोई फ़ील्ड पाता है, तो उन्हें फॉर्म ऑब्जेक्ट में जोड़ा जाता है। isValid() और getValues() कहलाते हैं, सभी Zend_Form_Element ऑब्जेक्ट्स पहले ही फ़ॉर्म से जुड़े हुए हैं, इसलिए प्रोसेसिंग सामान्य के रूप में चलती है।

+0

यह एक बहुत अच्छा और ठोस उदाहरण है :) धन्यवाद! –

+0

मेरी खुशी, खुशी हुई इससे मदद मिली। ;-) –

2

एक सुझाव उन सभी इनपुट फ़ील्ड को परिभाषित करना होगा जिन्हें आप ज़ेंड फॉर्म का उपयोग करके प्रदान करना चाहते हैं।

लेकिन जब प्रपत्र प्रदर्शित किया जाता है आप छिपाने कुछ क्षेत्रों और उन्हें दृश्य कर सकता है + पर क्लिक करके।

मुझे लगता है कि यह सबसे आसान तरीका है क्योंकि सजावट और सामान जोड़ने के लिए आपको क्लाइंट पक्ष पर PHP फ़ाइलों को बदलने की आवश्यकता होगी और यह संभव नहीं है।


एक और सुझाव है, आप कई रूपों को परिभाषित कर सकते हैं। + पर क्लिक करने से उपयोगकर्ता को एक अतिरिक्त फ़ील्ड के साथ दूसरे फॉर्म में रीडायरेक्ट किया जाता है।

संबंधित मुद्दे