Edición de «Enviar Formulario Usando Ajax»

De KumbiaPHP Framework Wiki

Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 1: Línea 1:
[[Categoría:Tutoriales KumbiaPHP]]
+
== Enviar Formulario Usando Ajax ==
 
 
{{cleanupbox
 
|texto ='''Este ejemplo es funcional para la [[KumbiaPHP_Framework_Versión_1.0_Beta2| Versión Beta2]]'''
 
}}
 
 
 
  
 
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".
 
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".
Línea 31: Línea 26:
  
 
<source lang="php">
 
<source lang="php">
<?php
 
  
 
class Personas extends ActiveRecord {
 
class Personas extends ActiveRecord {
Línea 40: Línea 34:
  
  
Luego creamos un controlador para manejar las peticiones del ejemplo llamado '''PersonasController''' (personas_controller.php) y le añadimos el siguiente código:
+
Ahora creamos un controlador para manejar las peticiones del ejemplo llamado '''PersonasController''' (personas_controller.php) y le añadimos el siguiente código:
  
 
<source lang="php">
 
<source lang="php">
<?php
 
 
Load::models('personas'); //cargamos el modelo
 
  
 
class PersonasController extends AppController {
 
class PersonasController extends AppController {
  
    //accion a ejecutar
 
 
     public function agregar() {
 
     public function agregar() {
 
+
         if (Input::hasPost('persona')) {
         if (Input::hasPost('persona')) { //si se envia el formulario
+
                 $persona = new Personas(Input::post('persona'));
                 $persona = new Personas(Input::post('persona')); //creamos el objeto y le damos los valores del formulario
+
                 if ($persona->save()) {
                 if ($persona->save()) { //verificamos si se guardaron los datos
 
 
                     Flash::valid('Guardado Exitoso');
 
                     Flash::valid('Guardado Exitoso');
 +
                    $this->redirect('crud_ajax');
 
                 }
 
                 }
        }
+
             }
    }
 
 
 
    protected function  after_filter() {
 
        if ( Input::isAjax() ){
 
             View::template(null); //si es ajax solo mostramos la vista
 
        }
 
 
     }
 
     }
 
}
 
}
  
 
</source>
 
</source>
 
 
Ahora creamos la vista con el formulario en '''views/personas/agregar.phtml''' con el siguiente codigo:
 
 
<source lang="php">
 
 
<div  id="resultado-ajax">   
 
    <h1>Agregar Persona</h1>
 
    <?php View::content() ?>
 
    <br/>
 
    <?php echo Ajax::form("resultado-ajax") //especificamos el id del div que se actualizará luego del envio 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>
 
 
 
Y eso es todo, cuando pulsemos el boton '''Guardar''' los datos se enviarán por Ajax, y el div '''resultado-ajax''' se actualizará mostrando nuevamente el formulario y el mensaje que nos indica si se guardaron los datos ó hubieron errores de validación, ademas si no se posee javascript ó esta desabilitado, el formulario se envia normalmente recargando la pagina :-)
 
 
===Ejemplo de como se vería la pagina===
 
 
[[Archivo:Formularioajaxmanuel.png|500px]]
 
 
----
 
 
Realizado por: Manuel Aguirre (manuel_j555)
 

Ten en cuenta que todas las contribuciones a KumbiaPHP Framework Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Proyecto:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)

Plantilla usada en esta página: