Diferencia entre revisiones de «Enviar Formulario Usando Ajax»

De KumbiaPHP Framework Wiki
Línea 1: Línea 1:
 +
{{cleanupbox
 +
|texto ='''Este ejemplo es funcional para la [[KumbiaPHP_Framework_Versión_1.0_Beta2| Versión Beta2]]'''
 +
}}
 +
 
== Enviar Formulario Usando Ajax (KumbiaPHP version 1.0 beta 2)==
 
== Enviar Formulario Usando Ajax (KumbiaPHP version 1.0 beta 2)==
  
Línea 26: Línea 30:
  
 
<source lang="php">
 
<source lang="php">
 +
<?php
  
 
class Personas extends ActiveRecord {
 
class Personas extends ActiveRecord {
Línea 37: Línea 42:
  
 
<source lang="php">
 
<source lang="php">
 +
<?php
  
 
Load::models('personas'); //cargamos el modelo
 
Load::models('personas'); //cargamos el modelo
Línea 51: Línea 57:
 
                 }
 
                 }
 
         }
 
         }
 +
    }
 +
 +
    protected function  after_filter() {
 +
        if ( Input::isAjax() ){
 +
            View::template(null); //si es ajax solo mostramos la vista
 +
        }
 
     }
 
     }
 
}
 
}

Revisión del 18:54 28 sep 2011

{{#if: |}}

{{#if:

|}}



Enviar Formulario Usando Ajax (KumbiaPHP version 1.0 beta 2)

Mediante este ejemplo se muestra la forma de enviar un formulario de manera asincronica con el uso del helper Ajax y el archivo "jquery.kumbiaphp.js".

Para el Ejemplo se usará la siguiente tabla:

CREATE TABLE `personas` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nombres` varchar(25) NOT NULL,
  `apellidos` varchar(25) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB ;


Lo primero que haremos será incluir los archivos javascript necesarios: jquery.min.js y jquery.kumbiaphp.js (se encuentran en public/javascript/jquery/)

echo Tag::js('jquery/jquery.min');
echo Tag::js('jquery/jquery.kumbiaphp')


Crearemos un modelo llamado Personas en la carpeta models ( models/personas.php )

<?php

class Personas extends ActiveRecord {

}


Luego creamos un controlador para manejar las peticiones del ejemplo llamado PersonasController (personas_controller.php) y le añadimos el siguiente código:

<?php

Load::models('personas'); //cargamos el modelo

class PersonasController extends AppController {

     //accion a ejecutar
     public function agregar() {

         if (Input::hasPost('persona')) {  //si se envia el formulario
                $persona = new Personas(Input::post('persona')); //creamos el objeto y le damos los valores del formulario
                if ($persona->save()) { //verificamos si se guardaron los datos
                    Flash::valid('Guardado Exitoso');
                }
         }
    }

    protected function  after_filter() {
        if ( Input::isAjax() ){
            View::template(null); //si es ajax solo mostramos la vista
        }
    }
}


Ahora creamos la vista con el formulario en views/personas/agregar.phtml con el siguiente codigo:

<div  id="resultado-ajax">    
    <h1>Agregar Persona</h1>
    <?php View::content() ?>
    <br/>
    <?php echo Ajax::form("resultado-ajax") ?>
    <dl>
        <dt>
        <?php echo Form::label('Nombres *', 'persona_nombres') ?>
        </dt>
        <dd>
            <?php echo Form::text('persona.nombres') ?>
        </dd>
        <dt>
        <?php echo Form::label('Apellidos *', 'persona_apellidos') ?>
        </dt>
        <dd>
            <?php echo Form::text('persona.apellidos') ?>
        </dd>
    </dl>
    <noscript>
        <?php echo Form::submit('Guardar') ?>
    </noscript>
    <?php echo Form::close() ?>
</div>