Comprobar si un checkbox esta checked con jquery

  1. $(document).ready(function(){  
  2.   
  3.     $(«#checkbox_comprobar»).click(function() {  
  4.         if($(«#checkbox»).is(‘:checked’)) {  
  5.             alert(«Está activado»);  
  6.         } else {  
  7.             alert(«No está activado»);  
  8.         }  
  9.     });  
  10.   
  11. }); 

Conexión a multiples base de datos en CodeIgniter

Siempre que hemos necesitado conectar varias bases de datos en nuestras aplicaciones PHP ha sido una tarea ardua y hasta compleja; incluso para aquellos que usamos CodeIgniter y desconocemos el método que vamos a describir a continuación:

Configurando las conexiones:

Suponiendo que nuestra estructura es la predeterminada y que ya tenemos una conexión a la base de datos, nos dirigimos a modificar el archivo application/config/database.php

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$active_group = 'conexion_A'; # Conexión principal
$active_record = TRUE;
 
// Nuestra primera base de datos y principal:
 
$db['conexion_A']['hostname'] = 'localhost';
$db['conexion_A']['username'] = 'username';
$db['conexion_A']['password'] = 'password';
$db['conexion_A']['database'] = 'database_A';
$db['conexion_A']['dbdriver'] = 'mysqli';
$db['conexion_A']['dbprefix'] = '';
$db['conexion_A']['pconnect'] = FALSE; # Recomendado para poder trabajar con ambas conexiones en paralelo
$db['conexion_A']['db_debug'] = TRUE;
$db['conexion_A']['cache_on'] = FALSE;
$db['conexion_A']['cachedir'] = '';
$db['conexion_A']['char_set'] = 'utf8';
$db['conexion_A']['dbcollat'] = 'utf8_general_ci';
$db['conexion_A']['swap_pre'] = '';
$db['conexion_A']['autoinit'] = TRUE;
$db['conexion_A']['stricton'] = FALSE;
 
// Nuestra segunda base de datos:
 
$db['conexion_B']['hostname'] = 'localhost';
$db['conexion_B']['username'] = 'username';
$db['conexion_B']['password'] = 'password';
$db['conexion_B']['database'] = 'database_B';
$db['conexion_B']['dbdriver'] = 'mysqli';
$db['conexion_B']['dbprefix'] = '';
$db['conexion_B']['pconnect'] = FALSE; # Recomendado para poder trabajar con ambas conexiones en paralelo
$db['conexion_B']['db_debug'] = TRUE;
$db['conexion_B']['cache_on'] = FALSE;
$db['conexion_B']['cachedir'] = '';
$db['conexion_B']['char_set'] = 'utf8';
$db['conexion_B']['dbcollat'] = 'utf8_general_ci';
$db['conexion_B']['swap_pre'] = '';
$db['conexion_B']['autoinit'] = FALSE; # A partir de la segunda conexión, es recomendable dejar en FALSE este valor.
$db['conexion_B']['stricton'] = FALSE;

Aplicando esta estructura podemos incluir la cantidad de conexiones que deseemos a nuestras bases de datos en el archivo de configuración, solo hay que tener en detalle dos aspectos:

¿Tipo de conexión mysqli?

Ya sabemos que dejar el tipo de conexión mysql conlleva a usar funciones de la librería de funciones MySQL como por ejemplo mysql_connect. Este tipo de funciones está totalmente obsoletas y se conocen fallos de seguridad y estabilidad en las aplicaciones que se usan. Por ello es aconsejable usar mysqli o PDO (Para la PDO hay una configuración especial).

¿Desactivada la persistencia?

Si deseamos trabajar en paralelo con varias conexiones, tenemos que desactivar la persistencia, en el caso de la configuración, el valor pconnect en FALSE. Si lo tenemos conectado en todas las conexiones, es como tratar de conectarse a todas las base de datos a la vez por una sola via.


Usando en el Controlador:

Ya teniendo la configuración hecha, ahora lo usaremos en el controlador deseado; para ello, es recomendable crear una propiedad privada para hacer recursiva y reusable la conexión.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Controlador extends CI_Controller {
 
    private $db_b;
 
    public function __construct() {
        parent::__construct();
 
        // Este metodo conecta a nuestra segunda conexión
        // y asigna a nuestra propiedad $this->db_b; los recursos de la misma.
        $this->db_b = $this->load->database('conexion_B', true);
    }
 
    public function index() {
        // Para la conexión principal y por defecto se usa
        // la propiedad predeterminada $this->db;
        $this->db->from('tabla_base_datos_A')->get();
        // Para otras conexiones, en caso de nuestro ejemplo
        // la "conexion_b" se usa la propiedad instanciada, $this->db_b;
        $this->db_b->from('tabla_base_datos_B')->get();
    }
 
    // ...
 
}

Instanciar la propiedad privada es importante para poder usar la otra conexión en el resto de métodos (acciones).


Usar en todos los controladores:

Para esto vamos a extender el Core de CodeIgniter, especificamente su Controlador para que todos nuestros controladores normales, se hereden del mismo.

Nos dirigimos a la carpeta application/core/ y creamos un archivo que haga referencia a “Controller” para este ejemplo será Base_Controller.php

01
02
03
04
05
06
07
08
09
10
11
12
class Base_Controller extends CI_Controller {
 
    protected $db_b;
 
    public function __construct() {
        parent::__construct();
 
        // Este metodo conecta a nuestra segunda conexión
        // y asigna a nuestra propiedad $this->db_b; los recursos de la misma.
        $this->db_b = $this->load->database('conexion_B', true);
    }
}

Generando la propiedad protegida $this->db_b; podremos usarla en todos los controladores que extendamos de la base.

El anterior controlador ahora heredaría de Base_Controller y no de CI_Controller.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
class Controlador extends Base_Controller {
 
    public function __construct() {
        parent::__construct();
    }
 
    public function index() {
        // $this->db_b ya esta instanciada en Base_Controller
        $this->db_b->from('tabla_base_datos_B')->get();
    }
 
    // ...
 
}

Con esto podremos trabajar sin problemas, la idea es extender y hacer recursivas nuestras instancias para facilitar el entorno de desarrollo.

Fuente:http://code.com.co/tutoriales/conexion-a-multiples-base-de-datos-en-codeigniter/