में कोई फ़ॉर्म व्यू बनाना Zend_Form
के लिए कस्टम व्यू बनाने का कोई विश्वसनीय तरीका है? सजावटी बहुत गुप्त हैं और उन्हें फैंसी तरीके से उपयोग करते हुए कभी-कभी इतना जटिल होता है कि मैं सिर्फ हाथ से HTML लिखना पसंद करूंगा। क्या ऐसा करने का कोई तरीका है और अभी भी फॉर्म को नियंत्रक के साथ पूरी तरह से सहयोग करना है (उदाहरण के लिए $form->isValid()
पर कॉल करें और सब कुछ ठीक से सत्यापित करने की उम्मीद करें)? यदि हां, तो क्या कोई चेतावनी देखने के लिए हैं (जैसे सत्यापन त्रुटियों के प्रदर्शन की देखभाल करना)?ज़ेंड
आदर्श समाधान एक फॉर्म बनाना होगा और तत्व सरणी (नाम, आईडी, इनपुट प्रकार और HTML को प्रस्तुत करने के लिए आवश्यक सभी आवश्यक डेटा) को पास करना होगा - क्या ज़ेंड फ्रेमवर्क इसे अनुमति देता है?
<?php
$userid = $this->form->getElement('userid');
$pass = $this->form->getElement('password');
$remember = $this->form->getElement('remember');
$submit = $this->form->getElement('submit');
?>
<form enctype="<?php echo $this->form->getEnctype(); ?>" method="<?php echo $this->form->getMethod(); ?>" action="<?php echo $this->form->getAction(); ?>" id="<?php echo $this->form->getId(); ?>">
name: <input type="text" id="<?php echo $userid->getId(); ?>" name="<?php echo $userid->getName(); ?>" /><br />
pass: <input type="password" id="<?php echo $pass->getId(); ?>" name="<?php echo $pass->getName(); ?>" /><br />
remember: <input type="checkbox" id="<?php echo $remember->getId(); ?>" name="<?php echo $remember->getName(); ?>" /><br />
submit: <input type="submit" id="<?php echo $submit->getId(); ?>" name="<?php echo $submit->getName(); ?>" value="<?php echo $submit->getValue(); ?>" />
</form>
फार्म और ठीक से काम करने लगता है:
[संपादित करें]
सिर्फ echo
प्रपत्र वस्तु ing के बजाय, मैं ध्यान में रखते हुए इस कोड (एक सरल लॉगिन फार्म) जोड़ने की कोशिश की है मान्य करें (हालांकि मुझे उस पृष्ठ को रीडायरेक्ट नहीं किया गया है - लेकिन यह एक अलग समस्या है, मुझे विश्वास है, क्योंकि मैं GET
के माध्यम से फॉर्म में नहीं हूं)। क्या यह स्वीकार्य है, या क्या मैं इसे जानने के बिना कुछ ग़लत गलत कर रहा हूं?
आप $ फार्म का उपयोग कर डेटा के साथ zend_forms पॉप्युलेट कर सकते हैं> ($ डेटा) को पॉप्युलेट ; – Marcin
मेरा मतलब डेटा के साथ उन्हें पॉप्युलेट करने का मतलब नहीं है, मेरा मतलब है कि उन भयानक, भयानक सजावटीों का उपयोग करने के बिना, अपने स्वयं के HTML लिखना। – mingos
यह एक गन्दा विधि है, और इसलिए मैं इसे उत्तर के रूप में पोस्ट नहीं करूंगा, लेकिन जैसा कि मार्किन ने सुझाव दिया है, आप अभी भी एक ही दृश्य में अपना स्वयं का फॉर्म लिख सकते हैं, ठीक उसी आईडी के साथ, और Zend_Form के साथ अपना फॉर्म लिख सकते हैं, और फिर फिल्टर, सत्यापनकर्ता, आदि का उपयोग करने के लिए इसे पॉप्युलेट करें ... आप Zend_Form का उपयोग किए बिना स्टैंडअलोन फ़िल्टर और सत्यापनकर्ता का भी उपयोग कर सकते हैं, मूल रूप से यह जेनर_फॉर्म का उपयोग जेनरेट फॉर्म के बिना करना है। लेकिन सबसे अच्छी सलाह अभी भी है: सजावट में गोता लगाएँ;) –