Diferencia entre revisiones de «Listas Enlazadas»
De KumbiaPHP Framework Wiki
m (→Controlador) |
|||
(No se muestran 16 ediciones intermedias de 3 usuarios) | |||
Línea 1: | Línea 1: | ||
+ | == Controlador == | ||
+ | <source lang=php> | ||
+ | <?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; | ||
+ | } | ||
+ | }</source> | ||
+ | |||
+ | El método after_filter() se usa para quitar el template por defecto | ||
+ | |||
== Modelos == | == Modelos == | ||
− | '''ciudades.php''' | + | '''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 /> | |
− | + | <source lang=php> | |
− | |||
− | '''estados.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/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