Diferencia entre revisiones de «Listas Enlazadas»
De KumbiaPHP Framework Wiki
(→Vista) |
m (→Controlador) |
||
(No se muestran 9 ediciones intermedias de 3 usuarios) | |||
Línea 2: | Línea 2: | ||
<source lang=php> | <source lang=php> | ||
<?php | <?php | ||
− | class DatosController extends | + | class DatosController extends AppController { |
protected function after_filter() { | protected function after_filter() { | ||
Línea 16: | Línea 16: | ||
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> | }</source> | ||
+ | |||
+ | El método after_filter() se usa para quitar el template por defecto | ||
== Modelos == | == Modelos == | ||
'''ciudades.php''' <br /> | '''ciudades.php''' <br /> | ||
− | <source lang= | + | <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> | </source> | ||
'''estados.php''' <br /> | '''estados.php''' <br /> | ||
− | <source lang= | + | <source lang=php> |
<?php | <?php | ||
class Estados extends ActiveRecord { | class Estados extends ActiveRecord { | ||
− | } | + | } |
</source> | </source> | ||
− | == | + | == Vistas == |
− | <source lang= | + | '''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"');?> | ||
Línea 52: | Línea 56: | ||
<?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> | </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