Ejemplo básico de formulario Ajax en drupal 7

Si queremos utilizar Drupal para realizar páginas web, hay algunas funcionalidades que son fundamentales saber hacer y manejar. Una de ellas es controlar formulario ajax en drupal. Más concreta mente os voy a mostrar como realizar un campo ajax haciendo una llamada y controlando totalmente el objeto form de Drupal.

Ejemplo sencillo de un formulario ajax en drupal 7

Primero de todo, debemos crear un formulario o capturarlo con hook_form_alter(), en este ejemplo voy ha crear un form desde un módulo con el hook_menu() podemos hacer una página, con una ruta y que nos devuelva un formulario.

Puntualizar que mi módulo se llama

Para ello, en cualquier parte de nuestro módulo o en el archivo creadorDeVialesMasivo.module declaramos el hoo_menu()

Ok, aquí hemos creado un formulario en la ruta ajaxforms, ese formulario debemos declararlo en la función miModulo_formularioAjax(), no voy ha explicar cada detalle del hook_menu(), podéis ver aquí su api,  este artículo no tiene este fin, vamos a realizar un formulario Ajax en drupal.

Si nos dirigimos a la ruta midrupalweb.com/ajaxforms veremos algo como esto. Recordaros que cada vez que cambies o añadáis alguna función de tipo hook tenéis que limpiar cache.

formulario ajax en drupal

Muy bien, se esta quejando de que no encuentra nuestra función con el form, genial, solo tenemos que crearla.

Para ello escribimos lo siguiente:

Ok muy fácil verdad, pero ahora mismo no hace nada, pero ya se ve el efecto de cargando, hay que declarar la última función. Esta se ejecutará en el servidor llamado por ajax, aquí le pondremos toda la lógica y llamadas a la base de datos, si quieres saber como hacer consultas a la a la base de datos de drupal mira este artículo.

Ya tenemos nuestro formulario manejado con ajax en drupal 7.

Os dejo este vídeo donde se explica algo parecido por si os sirve de ayuda.

Sencillo, si tienes alguna duda, ponlo en los comentarios.

 

 

 

 

About ignacio Farré

Técnico en programación web, amigo de MVC y experto en Drupal, Symfony, Prestashop y bootstrap.

Check Also

Como crear formulario en drupal 8

Cómo crear un formulario en drupal 8 e insertarlo en un bloque o una página

En este artículo os voy a enseñar como crear un formulario en drupal 8 para …

Como crear una página en drupal 8 y maquetar en un theme

Crear una página en Drupal 8 y maquetar en un template

Es muy fácil crear una página en drupal 8, pero lo interesante es poder maquetarla …

programar un bloque con drupal

Crear un bloque en drupal 8 y maquetar en un theme

Os voy a mostrar como crear un bloque en drupal 8 y lo mas importante, …

  • JHONATAN DAVID FERNANDEZ ROSA

    Excelente explicacion, sin embargo debes hacer un cambio en el codigo ” ‘page arguments’ => array(‘miModulo_formularioAjax’),”
    por
    ” ‘page arguments’ => array(‘myModulo_formularioAjax’),” luego todo funciona bien. Dios te bendiga.

    • http://ignaciofarre.com ignacio farre fuentes

      Gracias por el aporte, ya está corregido.
      Me alegro de que le sirva a algien. 😉