Diferencia entre revisiones de «Enviar Formulario Usando Ajax»

De KumbiaPHP Framework Wiki
Línea 59: Línea 59:
 
Ahora creamos la vista con el formulario en '''views/personas/agregar.phtml''' con el siguiente codigo:
 
Ahora creamos la vista con el formulario en '''views/personas/agregar.phtml''' con el siguiente codigo:
  
<source lang="php">
+
<source lang="phtml">
 +
 
 +
<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>
 +
 
 
</source>
 
</source>

Revisión del 18:44 28 sep 2011

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 )

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:

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');
                }
         }
    }
}


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>