JS は HTML の一部であるため、コントローラーやモデルに含めるべきではありません。フレームワークを使用しているため、ビューに表示する必要があります。別のファイルに保存する必要があります。コントローラーのメソッドごとに別のファイルを保持するか、コントローラーごとに 1 つの JS ファイル。
また、コア フォルダーに base_controller を作成し、それを使用してすべてのコントローラーを拡張することもできます。そこで、すべてのデフォルトの JS および CSS を設定できます。したがって、コントローラーのインデックスメソッドを呼び出すと、デフォルトのJSとCSSが読み込まれ、新しいものを追加する必要がある場合は、ジョンBが言ったようにコントローラーから渡すだけです
ヘルパーファイルにこの関数を含めることができます
/**
* getting js files from public folder
* @param array $js
* @return string
*/
function js_tag($js) {
$out = "";
if (!empty($js)) {
$js = array_reverse($js);
foreach ($js as $j) {
if (strstr($j, "http:") == "" && strstr($j, "https:") == "") {
if ($j == 'tinymac') {
$out.='<script type="text/javascript" src="' . base_url() . 'jscripts/tiny_mce/tiny_mce.js"></script>' . "\n";
} else {
$out.='<script type="text/javascript" src="' . base_url() . 'public/js/' . $j . '"></script>' . "\n";
}
} else {
$out.='<script type="text/javascript" src="' . $j . '"></script>' . "\n";
}
}
}
$out .= '<script type="text/javascript"> var baseurl = "' . base_url() . '"</script>' . "\n";
return $out;
}
/**
* getting css files from public folder
* @author Amir M
* @param array $css
* @return string
*/
function css_tag($css) {
$out = "";
if (!empty($css)) {
$css = array_reverse($css);
foreach ($css as $c) {
if (strstr($c, "http:") == "" && strstr($c, "https:") == "") {
$out.= link_tag(base_url() . "public/css/" . $c) . "\n";
} else {
$out.= link_tag($c) . "\n";
}
}
}
return $out;
}
コントローラーから呼び出すことができます
public function index(){
$data['js'] = js_tag('one.js', 'two.js' , 'jquery.js');
$data['css'] = css_tag('one.css', 'two.css' , 'jquery-ui.css');
$thuis->load->view('index' , $data);
}
注:上記の方法は配列を逆にするため、配列の最後の値がページの最初に来るため、配列の最後にjQueryを保持します
すべてのウェブサイトで共通のヘッダーに
<?php echo $js.$css?>