Diferencia entre revisiones de «Listas Enlazadas»
De KumbiaPHP Framework Wiki
m (→Controlador) |
|||
(No se muestran 14 ediciones intermedias de 3 usuarios) | |||
Línea 1: | Línea 1: | ||
== Controlador == | == Controlador == | ||
− | < | + | <source lang=php> |
− | <?php class DatosController extends | + | <?php |
+ | class DatosController extends AppController { | ||
protected function after_filter() { | protected function after_filter() { | ||
Línea 10: | Línea 11: | ||
function index() { | function index() { | ||
− | |||
} | } | ||
− | |||
function ciudades($id) { | function ciudades($id) { | ||
header('Content-type:text/json'); | header('Content-type:text/json'); | ||
$salida = array(); | $salida = array(); | ||
− | $ciudades = Load::model('ciudades')-> | + | $ciudades = Load::model('ciudades')->mostrar($id); |
foreach ($ciudades as $c) { | foreach ($ciudades as $c) { | ||
$salida[$c->id] = $c->ciudad; | $salida[$c->id] = $c->ciudad; | ||
} | } | ||
− | + | $this->data = $salida; | |
} | } | ||
− | }</ | + | }</source> |
+ | |||
+ | El método after_filter() se usa para quitar el template por defecto | ||
== Modelos == | == Modelos == | ||
'''ciudades.php''' <br /> | '''ciudades.php''' <br /> | ||
− | < | + | <source lang=php> |
− | |||
class Ciudades extends ActiveRecord { | class Ciudades extends ActiveRecord { | ||
− | + | function mostrar($id){ | |
− | } | + | return $this->find("conditions: estados_id = '$id'", 'columns: id, ciudad'); |
− | </ | + | } |
+ | } | ||
+ | </source> | ||
'''estados.php''' <br /> | '''estados.php''' <br /> | ||
− | < | + | <source lang=php> |
<?php | <?php | ||
class Estados extends ActiveRecord { | class Estados extends ActiveRecord { | ||
− | } | + | } |
− | </ | + | </source> |
− | == | + | == Vistas == |
− | < | + | '''index.phtml''' |
+ | <source lang=php> | ||
<label for="datos_estados_id">Estado: </label> | <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"');?> | <?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> | <label class="control-label" for="datos_ciudades_id">Ciudad: </label> | ||
<?php echo Form::dbSelect('datos.ciudades_id'); ?> | <?php echo Form::dbSelect('datos.ciudades_id'); ?> | ||
− | + | ||
<?php echo Tag::js('jquery/jquery.min'); ?> | <?php echo Tag::js('jquery/jquery.min'); ?> | ||
<?php echo Tag::js('jquery/kumbia.jquery.min'); ?> | <?php echo Tag::js('jquery/kumbia.jquery.min'); ?> | ||
+ | </source> | ||
+ | '''ciudades.phtml''' | ||
+ | <source lang=php> | ||
+ | <?php echo json_encode($data); ?> | ||
+ | </source> | ||
By: '''ashrey''' | 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