Diferencia entre revisiones de «Listas Enlazadas»

De KumbiaPHP Framework Wiki
(primera adicciṕn)
 
 
(No se muestran 19 ediciones intermedias de 3 usuarios)
Línea 1: Línea 1:
== Listas Enlazadas de tres niveles ==
+
== Controlador ==
 +
<source lang=php>
 +
<?php
 +
class DatosController extends AppController {
  
By: ***ashrey***
+
    protected function after_filter() {
 +
        if (Input::isAjax()) {
 +
            View::select('ajax', null);
 +
        }
 +
    }
 +
 
 +
    function index() {
 +
    }
 +
 
 +
    function ciudades($id) {
 +
        header('Content-type:text/json');
 +
        $salida = array();
 +
        $ciudades = Load::model('ciudades')->mostrar($id);
 +
        foreach ($ciudades as $c) {
 +
            $salida[$c->id] = $c->ciudad;
 +
        }
 +
      $this->data = $salida;
 +
    }
 +
}</source>
 +
 
 +
El método after_filter() se usa para quitar el template por defecto
 +
 
 +
== Modelos ==
 +
'''ciudades.php''' <br />
 +
<source lang=php>
 +
class Ciudades extends ActiveRecord {
 +
function mostrar($id){
 +
return $this->find("conditions: estados_id = '$id'", 'columns: id, ciudad');
 +
}
 +
}
 +
</source>
 +
 
 +
'''estados.php''' <br />
 +
<source lang=php>
 +
<?php
 +
class Estados extends ActiveRecord {
 +
 
 +
}
 +
</source>
 +
 
 +
== Vistas ==
 +
 
 +
'''index.phtml'''
 +
<source lang=php>
 +
<label for="datos_estados_id">Estado: </label>
 +
<?php echo Form::dbSelect('datos.estados_id', NULL, NULL, 'Elija', 'data-kumbia="remote" data-url="datos/ciudades" data-update="datos_ciudades_id"');?>
 +
<label class="control-label" for="datos_ciudades_id">Ciudad: </label>
 +
<?php echo Form::dbSelect('datos.ciudades_id'); ?>
 +
 
 +
 
 +
<?php echo Tag::js('jquery/jquery.min'); ?>
 +
<?php echo Tag::js('jquery/kumbia.jquery.min'); ?>
 +
</source>
 +
 
 +
'''ciudades.phtml'''
 +
<source lang=php>
 +
<?php echo json_encode($data); ?>
 +
</source>
 +
 
 +
 
 +
By: '''ashrey'''

Revisión actual del 14:33 6 oct 2013

Controlador[editar]

<?php
 class DatosController extends AppController {

    protected function after_filter() {
        if (Input::isAjax()) {
            View::select('ajax', null);
        }
    }

    function index() {
    }

    function ciudades($id) {
        header('Content-type:text/json');
        $salida = array();
        $ciudades = Load::model('ciudades')->mostrar($id);
        foreach ($ciudades as $c) {
            $salida[$c->id] = $c->ciudad;
        }
       $this->data = $salida;
    }
}

El método after_filter() se usa para quitar el template por defecto

Modelos[editar]

ciudades.php

class Ciudades extends ActiveRecord {
	function mostrar($id){
		return $this->find("conditions: estados_id = '$id'", 'columns: id, ciudad');
	}
}

estados.php

<?php
class Estados extends ActiveRecord {

}

Vistas[editar]

index.phtml

<label for="datos_estados_id">Estado: </label>
<?php echo Form::dbSelect('datos.estados_id', NULL, NULL, 'Elija', 'data-kumbia="remote" data-url="datos/ciudades" data-update="datos_ciudades_id"');?>
<label class="control-label" for="datos_ciudades_id">Ciudad: </label>
<?php echo Form::dbSelect('datos.ciudades_id'); ?>


<?php echo Tag::js('jquery/jquery.min'); ?>
<?php echo Tag::js('jquery/kumbia.jquery.min'); ?>

ciudades.phtml

<?php echo json_encode($data); ?>


By: ashrey