problemas con AJAX.viewRequest

edited abril 2012 in Dudas/Problemas
Estimados, estoy intentando realizar un par de listas enlazadas en la versión beta 2, pero no he podido hacerlo, he hecho todas las pruebas y solo me falta la parte en la que el AJAX carga una vista dentro de un contenedor. la forma en que intento llamar el AJAX es:

<label>Región</label>
            <?php echo Form::select('soporte_vp.region_id',$region,'onChange = carga_provincias()'); ?>


<script type='text/javascript'>
function carga_provincias(){
    var region_id = document.getElementById('soporte_vp_region_id').value;
    var ruta = "soporte_vp/getProvincia/" + region_id;
    new AJAX.viewRequest({
        action: ruta,
        container: "div_provincia"
    })
}
</script>

La función getProvincia del controlador soprote_vp es:

public function getProvincia($region){
View::response('view');
$provincia = new Provincia();
$this->provincia = $provincia->buscar($region);
}

y la función buscar del modelo provincia es:

public function buscar($region){
    $ciudades = array();
    foreach ($this->find("region_id = $region") as $e) {
            $ciudades["$e->id"] = $e->nombre;
        }
        return $ciudades;
  }


si pongo directamente en la url soporte_vp/getProvincia/4 me carga el combo sin problemas.
alguna idea?

Comentarios

  • edited agosto 2012
    Hola Ocid, Creo que mi comentario es un poco tarde, tu problema ayudo a realizar lo que necesitaba que era lo mismo y me funciona, te muestro mi codigo,

    Esta es la vista donde tengo los select y el javascript:

    <script type='text/javascript'>
                                function carga_municipios(){
                                    var region_id = document.getElementById('dpto').value;
                                    var ruta = "ciudades/"+region_id;
                                    new AJAX.viewRequest({
                                        action: ruta,
                                        container: "munic"
                                    })
                                }
                            </script>
                        <!--Departamento-->
                        <p>
                            <?php echo Form::label('Departamento:','dpto');
                            $ar2 = array('Cuandinamarca','Bolivar','Atlantico','Quindio','Amazonas','Piernas','Torax','Otros');
                            echo Form::Select('dpto', $deptos,"onChange='carga_municipios()'");?>
                        </p>
                        <!--Ciudad-->
                        <p>
                            <?php echo Form::label('Ciudad:','nombre') ?>
                        <div id="munic">
                            <?php
                                $municipios = array('seleccione la ciudad');
                                echo Form::Select('region', $municipios,' disabled');
                            ?>
                        </div>
    La funcion del action del ajax: 

    public function ciudades($depto = 0){
                View::response('view');
                if($depto == 0)
                    Router::redirect('/');
                $ciudades = Load::model('Municipio')->municipios($depto);
                $i = 0;
                foreach($ciudades as $val){
                    $mun[$i] = utf8_encode($val->nombreMunicipio);
                    $i++;
                }
                $this->municipios = $mun;
            } 

    Y La vista de la anterior funcion:

    <?php
        echo Form::Select('region', $municipios);
    ?>

    Espero entiendas.
Sign In or Register to comment.