CodeIgniter和Javascript/Jquery库

Luc*_*ano 21 javascript php jquery codeigniter libraries

正如标题所说,我正在试图弄清楚如何在CI上使用javascript和jquery库.

按照文档中的说明,我在我的控制器中加载库:

$this->load->library('javascript');
Run Code Online (Sandbox Code Playgroud)

然后,我在config.php中定义jQuery文件(jquery.min.js)的位置:

$config['javascript_location'] = 'http://localhost/ci/assets/js/jquery/');
Run Code Online (Sandbox Code Playgroud)

之后,我打开视图文件并输入以下两行:

<?php echo $library_src;?>
<?php echo $script_head;?> 
Run Code Online (Sandbox Code Playgroud)

第一个错误出现在这里:未定义的变量$ library_src和$ script_head(不明白我必须设置它们的位置)

无论如何,我已经评论了这些行并继续使用jquery lib,通过在我的控制器中加载它:

$this->load->library('jquery');
Run Code Online (Sandbox Code Playgroud)

下一个错误:无法加载请求的类:jquery.(似乎它找不到lib,我搞砸了什么?)

检查系统文件夹,它看起来所有文件都已到位:

system/libraries/Javascript.php
system/libraries/javascript/Jquery.php
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助!

zec*_*sox 14

将代码放在config.php中,如下所示:

$config['javascript_location'] = 'js/jquery/jquery.js';
$config['javascript_ajax_img'] = 'images/ajax-loader.gif';
Run Code Online (Sandbox Code Playgroud)

在您的控制器文件(例如controllers/sample.php)中键入以下代码:

 function __construct()
   {
        parent::__construct();
            $this->load->library('javascript');                    
   }

function index()
{

    $data['library_src'] = $this->jquery->script();
    $data['script_head'] = $this->jquery->_compile();

    $this->load->view('sampleview', $data);

}
Run Code Online (Sandbox Code Playgroud)

在您的视图文件(例如views/sampleview.php)中输入以下代码:

<?php echo $library_src;?>
<?php echo $script_head;?>
Run Code Online (Sandbox Code Playgroud)

这适合我.我希望它对你也有用.XD


jon*_*ohn 13

重要的是要注意这个驱动程序被标记为实验,所以我不会依赖它.

此外,我个人认为这是一个混乱和令人头疼的问题,试图直接将应用程序的服务器端部分与客户端部分混合在一起.

要在您的视图中使用javascript,我只需要像这样加载它们...

<script type="text/javascript" src="<?= base_url() ?>path/to/jquery.js"></script>
Run Code Online (Sandbox Code Playgroud)

  • 我们应该避免使用<?=而应该使用<?php echo"your_script_here";?> (4认同)

R D*_*own 7

因为这个驱动程序是实验性的,所以文档还不完整.但我能够找到解决方案.

首先,文档中有错误.除非你改变了核心JavaScript库(不推荐)的参考变量是不是 $script_head其实$script_foot.

其次,一旦你完成了通话,你似乎需要运行

$this->javascript->external();
Run Code Online (Sandbox Code Playgroud)

$this->javascript->compile();
Run Code Online (Sandbox Code Playgroud)

这些函数设置$library_src$script_foot变量.

总而言之,在您的控制器中,您将拥有:

class Some_Controller extends CI_Controller {
   public function index()
   {
       $this->javascript->click('#button', "alert('Hello!');");
       $this->javascript->external();
       $this->javascript->compile();
       $this->load->view('index');
   }
}
Run Code Online (Sandbox Code Playgroud)

在你看来你会有

<html>
  <head>
     <?php echo $library_src; ?>
     <?php echo $script_foot; ?>
Run Code Online (Sandbox Code Playgroud)