Diferencia entre revisiones de «Listas Enlazadas»

De KumbiaPHP Framework Wiki
 
(No se muestran 13 ediciones intermedias de 3 usuarios)
Línea 2: Línea 2:
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?php
  class DatosController extends AdminController {
+
  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')->find_all_by_estados_id($id);
+
         $ciudades = Load::model('ciudades')->mostrar($id);
 
         foreach ($ciudades as $c) {
 
         foreach ($ciudades as $c) {
 
             $salida[$c->id] = $c->ciudad;
 
             $salida[$c->id] = $c->ciudad;
 
         }
 
         }
        die(json_encode($salida));
+
      $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 />
<code>
+
<source lang=php>
<?php
 
 
class Ciudades extends ActiveRecord {
 
class Ciudades extends ActiveRecord {
 
+
function mostrar($id){
}?>
+
return $this->find("conditions: estados_id = '$id'", 'columns: id, ciudad');
</code>
+
}
 +
}
 +
</source>
  
 
'''estados.php''' <br />
 
'''estados.php''' <br />
<code>
+
<source lang=php>
 
<?php
 
<?php
 
class Estados extends ActiveRecord {
 
class Estados extends ActiveRecord {
  
}?>
+
}
</code>
+
</source>
  
== Vista ==
+
== Vistas ==
  
<code>
+
'''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'); ?>
</code>
+
 
  
 
<?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