2010-10-01 17 views
16

हैलो मैंने अभी कोडइग्निटर फ्रेमवर्क के साथ काम करना शुरू कर दिया है। मेरे वर्तमान निर्देशिका संरचनाकोडनिर्देशक: जावास्क्रिप्ट फ़ाइलों को कैसे शामिल करें

Demo(Project name) 
+System 
+Application 
    -Controllers 
     demo.php 
    +Model 
    -Views 
     view_demo.php 
-Js 
    ajax.js 
    jquery.js 

कृपया मुझे बताओ कैसे view_demo.php में .js फ़ाइलों को शामिल किया जा सके।

धन्यवाद राज

उत्तर

23

आपको अपने दृश्य में जावास्क्रिप्ट फ़ाइल को शामिल करने के लिए base_url() का उपयोग करने की आवश्यकता है।

तो, view_demo.php फ़ाइल में:

<script type="text/javascript" src="<?php echo base_url();?>js/jquery.js" ></script> 
<script type="text/javascript" src="<?php echo base_url();?>js/ajax.js" ></script> 

आप URL सहायक लोड की आवश्यकता होगी। सहायक आप अपने demo.php नियंत्रक पर डाल करने की आवश्यकता है लोड करने के लिए:

$this->load->helper('url'); 

तुम भी \ config \ सहायकों सरणी पर autoload.php पर autoload कर सकते हैं।

अधिक base_url के बारे में जानकारी(): http://www.codeigniter.com/user_guide/helpers/url_helper.html#base_url

+0

धन्यवाद इस्र्न पलाऊस। मैंने कोशिश की लेकिन base_url() "http://example.com/" गूंज रहा है और फ़ाइल को उन .js फ़ाइलों के लिए त्रुटि नहीं मिली है। कोई सुझाव? – Raj

+0

क्या आप अपना कंट्रोलर और अपना विचार पोस्ट कर सकते हैं? यदि base_url() आपके यूआरएल को सही दिखाता है। आपको निर्देशिका कॉन्फ़िगरेशन पर फ़ाइल config.php पर अपना BASE URL कॉन्फ़िगर करना होगा, यह बहुत महत्वपूर्ण है! – ipalaus

+0

धन्यवाद इस्र्न। असल में मैंने config.php फ़ाइल में config ['base_url'] को मेरे प्रोजेक्ट यूआरएल में सेट नहीं किया है। मैंने बस ऐसा किया। – Raj

15

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

जहां तक ​​मुझे पता है, कोडइजिनेटर फ़ंक्शन में कोई भी निर्माण नहीं किया गया है, जिसमें सीआई के लिए सीआई द्वारा प्रदान किए गए link_tag() फ़ंक्शन का उपयोग करके इस आउटपुट को शामिल किया गया है। मैंने सीआई से system/helpers/html_helper.php फ़ाइल में script_tag() नामक एक फ़ंक्शन जोड़ा है। समारोह है:

if (! function_exists('script_tag')) { 
    function script_tag($src = '', $language = 'javascript', $type = 'text/javascript', $index_page = FALSE) 
    { 
     $CI =& get_instance(); 
     $script = '<scr'.'ipt'; 
     if (is_array($src)) { 
      foreach ($src as $k=>$v) { 
       if ($k == 'src' AND strpos($v, '://') === FALSE) { 
        if ($index_page === TRUE) { 
         $script .= ' src="'.$CI->config->site_url($v).'"'; 
        } 
        else { 
         $script .= ' src="'.$CI->config->slash_item('base_url').$v.'"'; 
        } 
       } 
       else { 
        $script .= "$k=\"$v\""; 
       } 
      } 

      $script .= "></scr"."ipt>\n"; 
     } 
     else { 
      if (strpos($src, '://') !== FALSE) { 
       $script .= ' src="'.$src.'" '; 
      } 
      elseif ($index_page === TRUE) { 
       $script .= ' src="'.$CI->config->site_url($src).'" '; 
      } 
      else { 
       $script .= ' src="'.$CI->config->slash_item('base_url').$src.'" '; 
      } 

      $script .= 'language="'.$language.'" type="'.$type.'"'; 
      $script .= ' /></scr'.'ipt>'."\n"; 
     } 
     return $script; 
    } 
} 
फिर अपने PHP कोड में

आप कर सकते हैं: आपके विचार के अंदर

<script src="/path/to/file.js" type="text/javascript" charset="utf-8"></script> 

:

echo script_tag('content/js/jquery-1.4.2.js'); 
+1

मेरे पास एक ऐसा कार्य भी है, http: //blog.ipalaus।es/codeigniter-html-helper-modificado-anade-javascript-facilmente, यह बहुत उपयोगी है! :) – ipalaus

+0

आरसी, इसके लिए धन्यवाद। मुझे यह समाधान पसंद है .. कम काम। :) –

+0

@ipalaus: धन्यवाद! मैंने इसे अपने आवेदन में इस्तेमाल किया है और यह बहुत अच्छा काम करता है! – Nirmal

0

बस मानक का उपयोग करें! (निश्चित रूप से PHP टैग के अंदर नहीं।) मुझे नहीं लगता कि कोडइग्निटर एचटीएमएल हेल्पर में कोई भी फ़ंक्शन है जिसका उपयोग आप स्वयं HTML को लिखने के विकल्प के रूप में कर सकते हैं।

8

मैं मेरे विचार फ़ोल्डर की उप-निर्देशिका के मेरी जावास्क्रिप्ट की दुकान तो फ़ाइल पथ दृश्य बुलाया जा रहा है के सापेक्ष है और मैं() base_url छोड़ देते हैं।

मैंने अपनी एक और तकनीक को अपना नियंत्रक में शामिल करने के लिए स्क्रिप्ट की एक सरणी को परिभाषित करना था, फिर उन्हें शामिल करने के लिए मेरे दृश्य में सरणी के माध्यम से लूप करना था। यह मुझे आवश्यकता होने पर केवल विशेषता जेएस कार्यों को शामिल करने की अनुमति देता है।

$data['scripts to load'] = array('edit.js','menu.js', 'contact.js'); 
$this->load->view('myview'); 

तब दृश्य

<?php foreach($scripts_to_load as $script):?> 
      <script type='text/javascript' src = 'my_js/<?php echo $script;?>'> 
<?php endforeach;?> 

आप स्क्रिप्ट फ़ाइलें कि हर पृष्ठ पर लोड करने के है, तो में, आप हार्ड उनकी तरह अन्य उत्तर में वर्णित है आपके पाद लेख को ध्यान में रखते कोड कर सकते हैं।

+0

क्या मुझे ऐसा करने से पहले किसी चीज को कॉन्फ़िगर करना है? – Raj

+0

याद रखें, सीआई सिर्फ PHP है। हम दृश्य लोड करने से परे किसी भी सीआई कार्यों का उपयोग नहीं कर रहे हैं। यह स्क्रिप्ट टैग के साथ जेएस फाइलों को शामिल करने जैसा ही है। यह सरणी तकनीक सिर्फ विशेष जावास्क्रिप्ट फ़ाइलों की अधिक गतिशील लोडिंग की अनुमति देती है। इस तरह आप अपने http अनुरोधों को छोटा रखते हुए, प्रत्येक पृष्ठ पर केवल वही लोड करते हैं जो आपको चाहिए। – kevtrout

+0

इस समाधान से प्यार है। मैं वास्तव में इसे किसी और चीज़ के लिए उपयोग करूंगा लेकिन यह महान होगा। धन्यवाद। – Amir

1

फिल स्टर्जन के कोडइग्निटर टेम्पलेट लाइब्रेरी को देखें। हम काम पर इसके एक संशोधित संस्करण का उपयोग करते हैं। http://philsturgeon.co.uk/code/codeigniter-template

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