मैं यह लेख पढ़ें: http://www.jeremykendall.net/2009/01/19/dynamically-adding-elements-to-zend-form/प्रस्तुत पर ajax के साथ एक फार्म के लिए एक उप-प्रपत्र जोड़े
कि बहुत दिलचस्प था और यह ठीक काम करता है।
मुझे ऐसा करने की ज़रूरत है लेकिन सबफॉर्म के साथ। मेरा मतलब है कि जब कोई उपयोगकर्ता बटन दबाता है, तो मैं AJAX के माध्यम से कॉल करता हूं, जो एक क्रिया जो मेरे मौजूदा रूप में एक सबफॉर्म जोड़ता है, जोड़ता है और प्रदर्शित करता है।
उदाहरण के लिए:
मेरे पास एक ऐसा फॉर्म है जहां उपयोगकर्ता को अपने बच्चों का नाम और उपनाम भरना होगा, इसलिए एक बटन "बच्चा जोड़ें" है। जब उपयोगकर्ता उस बटन को दबाता है तो सबफॉर्म को मेरे मौजूदा रूप में जोड़ा जाना चाहिए और प्रदर्शित किया जाना चाहिए। सबमिट करने पर यह उस आलेख में उदाहरण की तरह मान्य होगा। केवल अंतर यह है कि वहां वह सिर्फ एक ही क्षेत्र जोड़ता है। मुझे सबफॉर्म जोड़ने की ज़रूरत है, लेकिन बिल्कुल वैसे ही।
public function clonerecursivegroupAction()
{
$this->_helper->layout->disableLayout();
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('clonerecursivegroup', 'html')->initContext();
$id = $this->_getParam('id', null);
$subform1 = new Zend_Form_SubForm();
$Element1 = $subform1->createElement('text', 'text1');
$Element1->setLabel('text1')->setRequired(true);
$Element2 = $subform1->createElement('text', 'text2');
$Element2->setLabel('text2')->setRequired(false);
$subform1->addElement($Element1);
$subform1->addElement($Element2);
$this->view->field = $subform1->__toString();
}
यह लगभग काम करता है:
मैं अपने एक्शन (अजाक्स द्वारा कहा जाता है) में निम्नलिखित की कोशिश की।
इस क्रिया का दृश्य सबफॉर्म का एचटीएमएल कोड देता है, इसलिए मेरे AJAX कॉल की सफलता पर मैं इसे प्रदर्शित करता हूं।
समस्या यह है कि सबमिट पर यह फ़ॉर्म को मान्य करता है लेकिन यह अभी भी नया सबफ़ॉर्म खो गया है। यह आलेख में केवल एक तत्व के साथ नहीं होता है। मुझे लगता है कि मुझे उप फॉर्म को मौजूदा फॉर्म में जोड़ने की ज़रूरत है, लेकिन कैसे?
हाय Samuele आप की जांच करना चाहिए js सत्यापन पुस्तकालय बीमा करने के लिए यह क्या करता है, के रूप में मैं यदि आप भिन्न फॉर्म (फॉर्म के अंदर फॉर्म) जोड़ते हैं तो अधिकांश लाइब्रेरी को फॉर्म और आईडी में सत्यापन जोड़ें, यह पूर्ण फॉर्म को मान्य नहीं करेगा –