- Where Developers Learn, Share, & Build Careers
ज़ेंड फ़्रेमवर्क में एक अजाक्स प्रतिक्रिया में मेरे डोजो तत्वों को पुनः पार्स करने में बड़ी समस्याएं हो रही हैं I मेरे पास एक सरल सत्यापन टेक्स्टबॉक्स और एक सबमिट बटन है I जब सूचकांक पृष्ठ पहली बार प्रस्तुत किया जाता है, तो सभी डोजो / दिइजिट टंड्रा शैलियों / विशेषताओं आदि को सही ढंग से पार्स किया जाता है। हालांकि, जब मेरे पास एक एजेक्स कॉल होता है जो डोजो फॉर्म को फिर से तैयार करता है और इसे इंडेक्स व्यू में वापस पोस्ट करता है। फॉर्म अगर ठीक वापस पोस्ट किया गया लेकिन टंड्रा स्टाइल अब काम नहीं कर रहे हैं। मैंने कई अलग-अलग चीजों की कोशिश की है लेकिन कई घंटे बिताए हैं कहीं नहीं। मैं किसी को भी अग्रिम धन्यवाद करता हूं जो सहायता करने का प्रयास करता है मैंने इस पोस्ट को स्पष्ट करने के लिए सबसे सरल उदाहरण जोड़ा है
लेआउट.फ़ाइल indexController.php <पूर्व> देखें index.phtml अपने पेज को चलाने के लिए कोशिश करें - यह है संभवत: DOCTYPE, और गैर-बंद टैग के साथ समस्या? लेकिन मुख्य मुद्दा यहां ऐसा लगता है कि डिजीट कक्षाएं सेट नहीं हैं - संभवतः क्योंकि डेटा-डोजो-प्रकार का आरंभ नहीं किया गया है। लेआउट.फाइल अपने
& lt;? Php गूंज & lt;? Xml संस्करण = "1.0" एन्कोडिंग = "यूटीएफ -8"? & gt; '; प्रतिध्वन करें $ this- & gt; doctype (); ? & Gt; & LT; html & gt; & Lt; शीर्ष & gt; & Lt; मेटा सामग्री = "पाठ / html; वर्णसेट = UTF-8" / & gt; & LT; स्क्रिप्ट & gt; फ़ंक्शन शोफॉर्म () {dojo.xhrGet ({url: "../public/index.php?ajax=true", // लोड फंक्शन को सर्वर से सफल प्रतिक्रिया पर कॉल किया जाता है // यह HTML div के उत्तर को सम्मिलित करता है "प्लेसहोल्डर हैंडल": "पाठ", सिंक: सच, भार: फ़ंक्शन (प्रतिक्रिया, ioArgs) {dojo.byId ("स्वागत")। InnerHTML = प्रतिक्रिया; वापसी प्रतिक्रिया;}, // त्रुटि समारोह त्रुटि संदेश प्रदर्शित करता है अगर सर्वर / सही त्रुटि प्रतिसाद नहीं करता है: फ़ंक्शन (प्रतिक्रिया, ioArgs) {console.error ("HTTP स्थिति कोड:", ioArgs.xhr.status); वापसी प्रतिक्रिया;}}); // dojo.parser.parse (dojo.byId ("स्वागत")); } & Lt; / script & gt; & Lt;? Php echo $ this- & gt; headTitle (); गूंज $ this- & gt; headStyle (); प्रतिलिपि करें $ this- & gt; हेडस्क्रिप्ट (); ईको $ इस- & gt; डोजो () - & gt; setDJConfigOption ('parseOnLoad', सच है); ईको $ इस- & gt; डोजो () - & gt; AddStyleSheetModule ('dijit.themes.tundra'); प्रतिध्वन करें $ this- & gt; डोजो (); ? & Gt; & Lt; / head & gt; & Lt; बॉडी क्लास = 'टुंड्रा' & gt; & Lt; div id = 'ajaxcontent' & gt; & Lt;? Php echo $ this- & gt; लेआउट () - & gt; सामग्री; ? & Gt; & Lt; / div & gt; & Lt; / body & gt;
& lt;? Php // require_once '../public /js/custom.js '; क्लास इंडेक्स नियंत्रक Zend_Controller_Action {सार्वजनिक फ़ंक्शन init ()) को विस्तारित करता है {$ ajaxContext = $ this- & gt; _helper- & gt; getHelper ('अजाक्स कॉन्टैक्ट'); $ AjaxContext- & gt; ऐडएक्शनकॉन्टेक्स्ट ('इंडेक्स', 'html') - & gt; इनट कॉन्टेक्स्ट (); } सार्वजनिक फ़ंक्शन सूचकांक () {$ form = new Zend_Dojo_Form ('dojoForm', array ('dojotype' = & gt; 'dijit.layout.ContentPane')); $ तत्व = नया Zend_Dojo_Form_Element_ValidationTextBox ('TestBoxName', सरणी ('आईडी' = & gt; 'TextBoxId', 'आवश्यक' = & gt; सत्य)); $ बटन = नया Zend_Dojo_Form_Element_Button ('TestButton', सरणी ('मान' = & gt; 'बटन', 'ऑनक्लिक' = & gt; 'showForm ()')); $ फार्म & gt; addElements (सरणी ($ तत्व, $ बटन)); $ इस- & gt; दृश्य- & gt; फ़ॉर्म = $ रूप; }}
& lt; div id = "स्वागत" & gt; & Lt;? Php echo $ this- & gt; फ़ॉर्म; ? & Gt;
addStyleSheetModule के साथ लाइन बस एक सीएसएस फ़ाइल जोड़ती है, जो आपके
& lt; body & gt; दावा करता है कि शरीर के नीचे सभी नोड्स 'संहिता' विषय (सीएसएस चयनकर्ता) हैं। चयनकर्ताओं को बहुत अच्छी तरह से संरचित डोम (इसलिए मान्यता) पर निर्भर करता है
फ़ंक्शन showForm () {dijit.byId ('स्वागत') में दो दृष्टिकोण हैं। सेट ('href', '../ ? सार्वजनिक / index.php ajax = true '); }
1.2 index.phtml
& lt; div id = 'welcome' में एक contentpane (जो parseOnLoad के डिफ़ॉल्ट) बनाएं।
& lt; div id = "स्वागत" डेटा- dojo- प्रकार = "dijit.layout.ContentPane" & gt;
2.0 कॉल पार्सर मैन्युअल रूप से
लोड: फ़ंक्शन (प्रतिक्रिया, ioArgs) {var domnode = dojo.byId ("स्वागत"); Domnode.innerHTML = प्रतिक्रिया; dojo.parser.parse (domnode); वापसी प्रतिक्रिया; }
Comments
Post a Comment