2008-11-28 22 views
6

के ब्लॉक को उत्पन्न करने के लिए कोड का पुन: उपयोग कैसे करें, मुझे लगता है कि मैं गलत तरीके से इस पर पहुंच रहा हूं, इसलिए मैं किसी भी टिप्पणी/मार्गदर्शन की सराहना करता हूं। उम्मीद है कि मैं जुड़कर काफी व्याख्या कर सकते हैं कि मैं क्या हासिल करने की कोशिश कर रहा हूँ:कोडनिर्देशक - HTML

  • मैं HTML के एक ब्लॉक का निर्माण करना चाहते हैं (जैसे एक बॉक्स एक उपयोगकर्ता के प्रोफ़ाइल युक्त) जो मैं अपने लेआउट का हिस्सा के रूप में लोड होगा, अधिकांश पृष्ठों पर जो मैं उत्पन्न करता हूं।

  • मैं भी करने में सक्षम होना चाहते हैं फिर से उत्पन्न एक अलग URL द्वारा अपने आप ही इस बॉक्स के भीतर सामग्री। ऐसा इसलिए है कि मैं एक AJAX कॉल के साथ बॉक्स को अद्यतन कर सकता हूं।

  • मैं कोड कोड को डुप्लिकेट नहीं करना चाहता जो इस HTML को बनाता है।

मुझे खुशी है कि मैं initally इस बॉक्स एक AJAX कॉल का उपयोग करके लोड सकता है, लेकिन है कि सर्वर के लिए एक अनावश्यक कॉल जोड़ने के लिए मेरे लिए प्रतीत होता है?

जिस तरह से मैंने सोचा कि मैं ऐसा कर सकता हूं, यह मेरे नियंत्रक में एक विधि है जो सिर्फ HTML के इस ब्लॉक को प्रस्तुत करता है, लेकिन फिर मैं इस विधि से अन्य नियंत्रक/दृश्य में आउटपुट का अनुरोध कैसे करूं?

आप इस पर कैसे पहुंचेंगे?

अग्रिम

उत्तर

7

धन्यवाद एक दृश्य बनाएँ उपयोगकर्ता के प्रोफ़ाइल के HTML के ब्लॉक पैदा करते हैं और का उपयोग कर अपने नियंत्रक से इसे कहते हैं:

$user_html = $this->load->view('user_view', $user_data, true); 

तीसरे पैरामीटर के बजाय एक स्ट्रिंग के रूप में देखने के लिए रिटर्न इसे प्रदर्शित करना इसे सामान्य तरीके से एक और दृश्य में पारित किया जा सकता है।

$data['user_block'] = $user_html; 
$this->load->view('page_view', $data); 
+0

हालांकि, यह आपको एक अलग यूआरएल नहीं देगा जिसे आप AJAX कॉल के लिए उपयोग कर सकते हैं। – victoriah

+0

धन्यवाद।तो मुझे लगता है कि यहां मुख्य बात यह है कि मॉडल के अंदर डेटा की सभी प्रसंस्करण को रखना है, इसलिए मेरे पास नियंत्रक में जितना संभव हो उतना छोटा कोड है। –

+0

और यह कोड डुप्लिकेशन को कम नहीं करता है। – victoriah

-1

जहां तक ​​डेटा का सवाल है, आपको HTML के साथ HTML उत्पन्न करने की आवश्यकता नहीं है। पृष्ठ स्रोत में JSON ऑब्जेक्ट आउटपुट से आवश्यक तत्व उत्पन्न करने के लिए आप jQuery का उपयोग कर सकते हैं। फिर आप तत्व पर एक अच्छी छोटी 'लोडिंग' एनीमेशन दिखा सकते हैं, जबकि यह 'domready' की स्थिति को मारने के लिए आसपास हो जाता है।

जहां तक ​​एक div repopulating का संबंध है, निम्न कार्य करें:

अपने प्रोफ़ाइल के लिए एक div बनाने और इसे एक आईडी दे। डेटा के प्रत्येक 'तत्व' को अपने स्वयं के पी तत्व में रखें और वास्तविक डेटा को एक स्पैन तत्व में लपेटें। , उदा, < पी > नाम:   < अवधि > जो Bloggs </span > </p > तो बस jQuery का उपयोग डेटा के साथ डोम पार और फैला फिर से आबाद करने के लिए। बस सुनिश्चित करें कि आप अपने डेटा को सही 'ऑर्डर' में आउटपुट करते हैं।

कोई प्रश्न, प्रतिक्रिया के लिए स्वतंत्र महसूस करें।

+1

मैं आपका पॉइंट देखता हूं, लेकिन मैं जावास्क्रिप्ट का उपयोग उन साइटों पर निर्भर होने के बजाय साइट पर प्रगतिशील रूप से बढ़ाने के लिए करता हूं, मुझे वास्तव में सर्वर-साइड –

+0

करने में सक्षम होना चाहिए, कृपया जेनरेट करना चाहते हैं गतिशील। – Jay

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