Библиотека CodeIgniter и Javascript / JQuery

Как говорится в названии, я пытаюсь выяснить, как использовать библиотеки javascript и jquery в CI.

Следуя инструкциям в документах , я загружаю библиотеку в свой контроллер:

$this->load->library('javascript'); 

Затем я определяю местоположение файла jQuery (jquery.min.js) в файле config.php:

 $config['javascript_location'] = 'http://localhost/ci/assets/js/jquery/'); 

После этого я открываю файл представления и помещаю в эти две строки:

 <?php echo $library_src;?> <?php echo $script_head;?> 

Здесь появляется первая ошибка: неопределенная переменная $ library_src и $ script_head (не понимаю, где я должен их устанавливать)

Во всяком случае, я прокомментировал эти строки и продолжил работу с jquery lib, загрузив его в контроллер:

 $this->load->library('jquery'); 

Следующая ошибка: Не удалось загрузить запрошенный класс: jquery . (кажется, что он не может найти lib, что я испортил?)

При проверке в системной папке все файлы находятся на месте:

 system/libraries/Javascript.php system/libraries/javascript/Jquery.php 

Заранее спасибо за вашу помощь!

Solutions Collecting From Web of "Библиотека CodeIgniter и Javascript / JQuery"

Важно отметить, что этот драйвер отмечен как экспериментальный, поэтому я не стал бы на него полагаться.

Кроме того, лично я думаю, что он просит путаницу и головные боли, чтобы попытаться напрямую смешивать серверные части ваших приложений с частями на стороне клиента.

Чтобы использовать javascript в ваших представлениях, я бы просто начал загружать их вот так …

 <script type="text/javascript" src="<?= base_url() ?>path/to/jquery.js"></script> 

Поместите код в config.php следующим образом:

 $config['javascript_location'] = 'js/jquery/jquery.js'; $config['javascript_ajax_img'] = 'images/ajax-loader.gif'; 

В вашем файле контроллера (например, контроллеры / 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); } 

В вашем файле вида (например, views / sampleview.php) введите следующие коды:

 <?php echo $library_src;?> <?php echo $script_head;?> 

Это работает для меня. Надеюсь, это сработает и для вас. XD

Поскольку этот драйвер является экспериментальным, документация еще не совсем там. Но я смог найти решение.

Во-первых, в документации есть ошибка. Если вы не измените основную библиотеку Javascript (не рекомендуется), ссылочная переменная не является $script_head а фактически $script_foot .

Во-вторых, как только вы закончите делать свои звонки, кажется, вам нужно запустить

 $this->javascript->external(); 

а также

 $this->javascript->compile(); 

Эти функции устанавливают переменные $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'); } } 

По вашему мнению, вы бы

 <html> <head> <?php echo $library_src; ?> <?php echo $script_foot; ?> 

Хотя CI сначала ищет system папку, вы также можете попробовать разместить свои библиотеки в этих папках:

 application/libraries/Javascript.php application/libraries/javascript/Jquery.php