Como dice el título, estoy tratando de descubrir cómo usar las bibliotecas javascript y jquery en CI.
Siguiendo las instrucciones en los documentos , cargo la biblioteca en mi controlador:
$this->load->library('javascript');Luego, defino la ubicación del archivo jQuery (jquery.min.js) en config.php:
$config['javascript_location'] = 'http://localhost/ci/assets/js/jquery/');Después de eso, abro el archivo de vista y pongo estas dos líneas:
<?php echo $library_src;?> <?php echo $script_head;?>Aparece el primer error aquí: variable no definida $library_src y $script_head (no entiendo dónde tengo que configurarlos)
De todos modos, he comentado estas líneas y sigo con jquery lib, cargándolo en mi controlador con:
$this->load->library('jquery');Siguiente error: no se puede cargar la clase solicitada: jquery . (Parece que no puede encontrar la lib, ¿qué estropeé?)
Al verificar en la carpeta del sistema, parece que todos los archivos están en su lugar:
system/libraries/Javascript.php system/libraries/javascript/Jquery.php¡Gracias de antemano por tu ayuda!
Pon el código en config.php así:
$config['javascript_location'] = 'js/jquery/jquery.js'; $config['javascript_ajax_img'] = 'images/ajax-loader.gif';En su archivo de controlador (por ejemplo, controladores/sample.php) escriba estos códigos:
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); }En su archivo de vista (por ejemplo, views/sampleview.php) escriba estos códigos:
<?php echo $library_src;?> <?php echo $script_head;?>Esto funciona para mí. Espero que funcione para ti tambien. XDD
Es importante tener en cuenta que este controlador está marcado como experimental , por lo que no confiaría en él.
Además, personalmente, creo que está generando confusión y dolores de cabeza tratar de mezclar directamente las partes del lado del servidor de sus aplicaciones con las partes del lado del cliente.
Para usar javascript en sus vistas, simplemente comenzaría cargándolas así...
<script type="text/javascript" src="<?= base_url() ?>path/to/jquery.js"></script>Debido a que este controlador es experimental, la documentación aún no está lista. Pero pude encontrar una solución.
Primero, la documentación tiene un error. A menos que cambie la biblioteca principal de Javascript (no se sugiere), la variable de referencia no es $script_head sino $script_foot .
En segundo lugar, una vez que haya terminado de hacer sus llamadas, parece que necesita ejecutar
$this->javascript->external();y
$this->javascript->compile(); Estas funciones establecen las $library_src y $script_foot .
Para ponerlo todo junto, en su controlador tendría:
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'); } }En tu opinión, tendrías
<html> <head> <?php echo $library_src; ?> <?php echo $script_foot; ?>