Edición de «Listas simples enlazadas jquery»

De KumbiaPHP Framework Wiki

Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 1: Línea 1:
{{cleanupbox
 
|image=[[Archivo:Information_icon4.png|45px]]
 
|texto ='''Este Artículo cumple con todos los quererimientos de los Kumbieros.'''<br />
 
}}
 
 
 
== Listas Enlazadas de tres niveles ==
 
== Listas Enlazadas de tres niveles ==
 
Para nuestro ejemplos vamos a utilizar listas simples [http://es.wikipedia.org/wiki/Lista_(inform%C3%A1tica)#Listas_simples_enlazadas] con 3 niveles, Regiones, Comunas y Ciudades.
 
Para nuestro ejemplos vamos a utilizar listas simples [http://es.wikipedia.org/wiki/Lista_(inform%C3%A1tica)#Listas_simples_enlazadas] con 3 niveles, Regiones, Comunas y Ciudades.
Línea 90: Línea 85:
  
 
* clientes_controller.php
 
* clientes_controller.php
Vamos a trabajar con un controller llamado clientes, acá solo mostrareos los 3 niveles de las listas, nada más, es decir, no vamos a trabajar con el modelo clientes ya que puede ser 'usuarios, proveedores, profesionales, auxiliares, pacientes, etc..', la base siempre es la misma
 
 
  
 
<source lang=php>
 
<source lang=php>
<?php
+
<?php  
/**
 
* Carga de Modelos
 
*/
 
Load::models('regiones','comunas','ciudades');
 
 
class ClientesController extends ApplicationController{
 
class ClientesController extends ApplicationController{
public function index() {
+
public function index() {
 
 
 
}
 
}
 
public function create(){
 
public function create(){
$regiones = new Regiones();
+
Load::model('clientes');
$this->regiones = $regiones->buscar();
+
Load::model('regiones');
 
if($this->has_post('clientes')){
 
if($this->has_post('clientes')){
 
//SUBMIT
 
//SUBMIT
 
}
 
}
 
}
 
}
public function getComunas(){
+
public function getComunas($regiones_id = 0){
 +
Load::model('comunas');
 
$this->set_response('view');
 
$this->set_response('view');
$comunas = new Comunas();
+
$this->regiones_id = $regiones_id;
$this->comunas = $comunas->buscar($this->post('regiones_id'));
 
 
}
 
}
 
 
 
 
public function getCiudades(){
+
public function getCiudades($comunas_id = 0){
 +
Load::model('ciudades');
 
$this->set_response('view');
 
$this->set_response('view');
$ciudades = new Ciudades();
+
$this->comunas_id = $comunas_id;
$this->ciudades = $ciudades->buscar($this->post('comunas_id'));
 
 
}
 
}
 
}
 
}
Línea 125: Línea 113:
 
</source>
 
</source>
  
* Modelo Regiones
 
  
<source lang=php>
+
* create.phtml
<?php
 
class Regiones extends ActiveRecord{
 
  public function buscar(){
 
    return $this->find('order: nombre');
 
  }
 
}
 
?>
 
</source>
 
 
 
* Modelo Comunas
 
 
 
<source lang=php>
 
<?php
 
class Comunas extends ActiveRecord{
 
  public function buscar($regiones_id){
 
    return $this->find("regiones_id = $regiones_id", 'order: nombre');
 
  }
 
}
 
?>
 
</source>
 
 
 
* Modelo Ciudades
 
 
 
<source lang=php>
 
<?php
 
class Ciudades extends ActiveRecord{
 
  public function buscar($comunas_id){
 
    return $this->find("comunas_id = $comunas_id", 'order: nombre');
 
  }
 
}
 
?>
 
</source>
 
 
 
* Vista create.phtml
 
  
 
<source lang=php>
 
<source lang=php>
Línea 169: Línea 122:
 
<table id='table_forms'>
 
<table id='table_forms'>
 
<tr>
 
<tr>
<th>Región</th>
+
<th>Regi&oacute;n</th>
 
<td>
 
<td>
 
<?php
 
<?php
echo select_tag(array('clientes.regiones_id', $regiones, 'option' => 'nombre', 'include_blank' => 'Seleccione...'));
+
echo select_tag(array('clientes.regiones_id',  
 +
                                        'order' => 'nombre',
 +
                                        'Regiones', 'option' => 'nombre',
 +
                                        'include_blank' => 'Seleccione...'));
 
?>
 
?>
 
</td>
 
</td>
Línea 193: Línea 149:
 
<script type='text/javascript'>
 
<script type='text/javascript'>
 
$("#clientes_regiones_id").change(function(){
 
$("#clientes_regiones_id").change(function(){
var regiones_id = $('#clientes_regiones_id').val();
+
var regiones_id = document.getElementById('clientes_regiones_id').value;
        $.ajax({
+
url = "<?php echo get_kumbia_url('regiones/getComunas/'); ?>" + regiones_id;
          type: "POST",
+
$("#div_comunas").load(url);
          url: "<?php echo PUBLIC_PATH . 'clientes/getComunas/'; ?>",
 
          data: "regiones_id=" + regiones_id,
 
          success: function(html){
 
            $("#div_comunas").html(html);
 
          }
 
        });
 
 
});
 
});
 
</script>
 
</script>
Línea 207: Línea 157:
  
  
* Vista getComunas.phtml
+
* getComunas.phtml
  
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?php
echo select_tag(array("clientes.comunas_id", $comunas, 'option' => 'nombre', 'include_blank'=> 'Seleccione...'));
+
echo select_tag(array("clientes.comunas_id",  
 +
                'order' => 'nombre',
 +
                'Comunas', 'option' => 'nombre',
 +
'conditions' => "regiones_id = $regiones_id",
 +
'include_blank' => 'Seleccione...'));
 
?>
 
?>
  
 
<script type='text/javascript'>
 
<script type='text/javascript'>
 
$("#clientes_comunas_id").change(function(){
 
$("#clientes_comunas_id").change(function(){
var comunas_id = $('#clientes_comunas_id').val();
+
var comunas_id = document.getElementById('clientes_comunas_id').value;
        $.ajax({
+
url = "<?php echo get_kumbia_url('regiones/getCiudades/'); ?>" + comunas_id;
          type: "POST",
+
$("#div_ciudades").load(url);
          url: "<?php echo PUBLIC_PATH . 'clientes/getCiudades/'; ?>",
 
          data: "comunas_id=" + comunas_id,
 
          success: function(html){
 
            $("#div_ciudades").html(html);
 
          }
 
        });
 
 
});
 
});
 
</script>
 
</script>
 
</source>
 
</source>
  
* Vista getCiudades.phtml
+
* getCiudades.phtml
  
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?php
echo select_tag(array('clientes.ciudades_id', $ciudades, 'option'=> 'nombre', 'include_blank'=>'Seleccione...'));
+
echo select_tag(array('clientes.ciudades_id',  
 +
                'order' => 'nombre',
 +
                'Ciudades', 'option' => 'nombre',
 +
'conditions' => "comunas_id = $comunas_id",
 +
'include_blank' => 'Seleccione...'));
 
?>
 
?>
 
</source>
 
</source>
 
* Parametros del codigo Ajax:
 
'''$()''' (La funcion jQuery): Es la función principal de jQuery, que además tiene diversas utilidades según los parámetros
 
que se le envíen. Su utilidad principal es obtener elementos de la página. Escribir $() es igual como que escribir jquery().
 
 
'''$.ajax():''' Es el metodo principal para realizar peticiones AJAX.
 
 
'''type:''' El tipo de petición que se realiza. Su valor por defecto es GET, aunque también se puede utilizar el método POST.
 
 
'''url:''' La URL del servidor a la que se realiza la petición.
 
 
'''data:''' Información que se incluye en la petición. Se utiliza para enviar parámetros al servidor. Si es una cadena de texto, se envía tal cual, por lo que su formato debería ser parametro1=valor1&parametro2=valor2. También se puede indicar un array asociativo de pares clave/valor que se convierten automáticamente en una cadena tipo query string.
 
 
'''success:''' Permite establecer la función que se ejecuta cuando una petición se ha completado de forma correcta. La función recibe como primer parámetro los datos recibidos del servidor, previamente formateados según se especifique en la opción dataType.
 
 
===Descarga===
 
Descarga ejemplo: [http://dl.dropbox.com/u/2807704/kumbiaPHP/v1_b1/app_listas_enlazadas.zip app_listas_enlazadas.zip] para el '''core''' del '''beta1''' de '''Spirit v1.0'''
 
 
Coloca esta carpeta dentro de kumbiaphp y ejecuta la direccion:
 
http://localhost/mi_ruta_de_kumbiaphp_framework_aqui/app_listas_enlazadas/clientes/create/
 
para ver el ejemplo de esta practica.
 
Recuerda indicar en la carpeta config/databases.ini el nombre de tu base de datos, usuario y clave.
 
Si tienes algun problema con esta practica, puedes pasar por el IRC de KumbiaPHP, el Foro o la Listmail, siempre habran personas dispuestas a ayudarte.
 
  
 
[[Categoría:Tutoriales KumbiaPHP]]
 
[[Categoría:Tutoriales KumbiaPHP]]
[[Categoría:jQuery]]
 

Ten en cuenta que todas las contribuciones a KumbiaPHP Framework Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Proyecto:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)

Plantilla usada en esta página: