codeigniter加载视图特定的javascript

Fai*_*yet 5 php codeigniter

我有一个寄存器视图文件,其中有一个非常大的形式.因此我打算使用表单向导插件和jquery表单验证插件.我只希望在特定页面上加载这些脚本.我该怎么做呢 ?这是我的控制器方法.

public function index(){
    $data['title'] = "Register";        
    $this->load->view("site_header", $data); 
    $this->load->view("site_nav"); 
    $this->load->view("content_register"); 
    $this->load->view("site_footer");
} 
Run Code Online (Sandbox Code Playgroud)

我在这里看到了关于stackoverflow的类似帖子,但我不明白该怎么做.请帮忙.

fob*_*bus 12

您可以将哪个js作为变量加载.示例在这里;

样品控制器

class mypage extends CI_Controller{
    public function index(){
    $data['js_to_load']="index.js";
    $this->load->view('header',$data);
    $this->load->view('my_html_page');
    }

    public function second_page(){
    $data['js_to_load']='second.js';
    $this->load->view('header',$data);
    $this->load->view('my_second_html_page');

    }
}
Run Code Online (Sandbox Code Playgroud)

header.php - 查看文件

<!-- Needed html code here -->

<? if ($js_to_load != '') : ?>

<script type="text/javascript" src="assets/js/<?=$js_to_load;?>">

<? endif;?>

<!-- Other html code here -->
Run Code Online (Sandbox Code Playgroud)

发生了什么?

我们将js文件设置为$ data变量,并将$ data变量传递给header.在头文件中,我们检查是否设置了js_to_load?如果是,我们将包含js文件.

您也可以使用数组传递多个js文件.

样品控制器

class mypage extends CI_Controller{
    public function index(){
    $data['js_to_load']=array("index.js","index1.js","index2.js");
    $this->load->view('header',$data);
    $this->load->view('my_html_page');
    }

    public function second_page(){
    $data['js_to_load']=array("second.js","second2.js","second2.js");
    $this->load->view('header',$data);
    $this->load->view('my_second_html_page');

    }
}
Run Code Online (Sandbox Code Playgroud)

header.php - 查看文件

<!-- Needed html code here -->

<? if (is_array($js_to_load)) : ?>
<? foreach ($js_to_load as $row):
    <script type="text/javascript" src="assets/js/<?=$row;?>">
<?endforeach;?>
<? endif;?>

<!-- Other html code here -->
Run Code Online (Sandbox Code Playgroud)

  • 我使用[isset();](http://www.php.net/isset)检查$ js_to_load是否在给定的控制器方法中定义,否则会出现错误。`&lt;?if(isset($ js_to_load)):?&gt; &lt;script type =“ text / javascript” src =“ assets / js / &lt;?= $ js_to_load;?&gt;”&gt; &lt;?endif;?&gt;` (2认同)