Raj*_*Raj 18 javascript codeigniter include
您好我刚开始使用CodeIgniter框架.我目前的目录结构是
Demo(Project name)
+System
+Application
-Controllers
demo.php
+Model
-Views
view_demo.php
-Js
ajax.js
jquery.js
Run Code Online (Sandbox Code Playgroud)
请告诉我如何在view_demo.php中包含.js文件.
谢谢Raj
ipa*_*aus 27
您需要使用base_url()在您的VIEW中包含javascript文件.
所以,在view_demo.php文件中:
<script type="text/javascript" src="<?=base_url()?>js/jquery.js" ></script>
<script type="text/javascript" src="<?=base_url()?>js/ajax.js" ></script>
Run Code Online (Sandbox Code Playgroud)
您将需要加载URL帮助程序.要加载你需要放在demo.php控制器上的助手:
$this->load->helper('url');
Run Code Online (Sandbox Code Playgroud)
您还可以在helpers数组上的\ config\autoload.php上自动加载.
有关base_url()的更多信息:http://www.codeigniter.com/user_guide/helpers/url_helper.html#base_url
RC.*_*RC. 22
您不会在PHP中包含JS文件,它们将作为您生成的HTML中的脚本标记输出,您可能将其作为PHP脚本的输出生成.
据我所知,没有内置CodeIginiter函数来包含此输出,就像使用link_tag()CI提供的功能的CSS一样.我已经从CI 添加了一个调用script_tag()该system/helpers/html_helper.php文件的函数.功能是:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在您的PHP代码中,您可以:
echo script_tag('content/js/jquery-1.4.2.js');
Run Code Online (Sandbox Code Playgroud)
我将我的javascript存储在我的视图文件夹的子目录中,因此文件路径相对于被调用的视图,我省略了base_url().
我采用的另一种技术是定义要包含在我的控制器中的脚本数组,然后在我的视图中循环遍历数组以包含它们.这允许我仅在需要时包含专业js功能.
$data['scripts to load'] = array('edit.js','menu.js', 'contact.js');
$this->load->view('myview');
Run Code Online (Sandbox Code Playgroud)
然后在视图中
<?php foreach($scripts_to_load as $script):?>
<script type='text/javascript' src = 'my_js/<?php echo $script;?>'>
<?php endforeach;?>
Run Code Online (Sandbox Code Playgroud)
如果您在每个页面上都加载了脚本文件,则可以在页脚视图中对其进行硬编码,如其他答案中所述.
| 归档时间: |
|
| 查看次数: |
86570 次 |
| 最近记录: |