Tradicionalmente, los formularios web se configuran para enviarse sincrónicamente. En el envío sincrónico, cuando los usuarios envían un formulario, se les redirige a una página de reconocimiento, a una página de agradecimiento o, en el caso de se produzca un error en el envío, a una página de error. Sin embargo, las experiencias web modernas, como las aplicaciones de una sola página, están ganando popularidad en los casos en los que la página web permanece estática mientras la interacción cliente-servidor se produce en segundo plano. Puede configurar el envío asincrónico para proporcionar esta experiencia en formularios adaptables.
En el caso del envío asincrónico, cuando un usuario envía un formulario, el desarrollador del formulario agrega una experiencia independiente, como redirigir a otro formulario o a una sección independiente del sitio web. El autor también puede añadir servicios independientes, como enviar datos a un almacén de datos diferente o añadir un motor de análisis personalizado. En el caso del envío asincrónico, un formulario adaptable se comporta como una aplicación de una sola página, ya que el formulario no se vuelve a cargar o su URL no cambia cuando los datos del formulario enviados se validan en el servidor.
Siga leyendo para obtener más información sobre el envío asincrónico en formularios adaptables.
Para configurar el envío asincrónico en un formulario adaptable:
En el modo Autor del formulario adaptable, seleccione el objeto Contenedor de formulario y pulse para abrir sus propiedades.
En la sección de propiedades de Envío, habilite Usar envío asincrónico.
En la sección Al enviar, seleccione una de las siguientes opciones para realizarla cuando se envíe correctamente del formulario.
Pulse para guardar las propiedades.
Experience Manager Forms proporciona controladores de éxito y de error predeterminados para los envíos de formularios. Los controladores son funciones del lado del cliente que se ejecutan en función de la respuesta del servidor. Cuando se envía un formulario, los datos se transmiten al servidor para su validación, lo que devuelve una respuesta al cliente con información sobre el evento de éxito o error del envío. La información se pasa en forma de parámetros al controlador correspondiente para ejecutar la función.
Además, los autores y desarrolladores de formularios pueden escribir reglas a nivel de formulario para invalidar los controladores predeterminados. Para obtener más información, consulte Invalidar los controladores predeterminados mediante reglas.
Primero vamos a revisar la respuesta del servidor para los eventos de éxito y de error.
La estructura de la respuesta del servidor para el evento de éxito del envío es la siguiente:
{oneOf: [
{ properties : {
contentType : {"type" : "string", "enum" : ["xmlschema", "jsonschema"]},
data : {type : "string", description : "Form data in XML or JSON format"},
thankYouOption : {type : "string"}
}},
properties : {
contentType : {"type" : "string", "enum" : ["xmlschema", "jsonschema"]},
data : {type : "string", description : "Form data in XML or JSON format"},
thankYouContent: {type: "string"}
}
]
}
La respuesta del servidor en caso de que el envío del formulario se realice correctamente incluye:
El controlador de éxito lee la respuesta del servidor y, en consecuencia, redirige a la URL de la página configurada o muestra un mensaje.
La estructura de la respuesta del servidor para el evento de error del envío es la siguiente:
{
errorCausedBy : "<CAPTCHA_VALIDATION or SERVER_SIDE_VALIDATION>",
errors : [
{ "somExpression" : "<SOM Expression>",
"errorMessage" : "<Error Message>"
},
...
]
}
La respuesta del servidor en caso de que se produzca un error durante el envío del formulario incluye:
El controlador de error lee la respuesta del servidor y, en consecuencia, muestra el mensaje de error en el formulario.
Los desarrolladores y autores de formularios pueden escribir reglas a nivel de formulario para invalidar los controladores predeterminados. La respuesta del servidor para eventos de éxito y error se expone a nivel de formulario, al cual los desarrolladores pueden acceder usando $event.data
en las reglas.
Realice los siguientes pasos para escribir reglas para controlar los eventos de éxito y error.
Abra el formulario adaptable en el modo Autor, seleccione cualquier objeto de formulario y pulse para abrir el Editor de reglas.
Seleccione Formulario en el árbol Objetos de formulario y pulse Crear.
Seleccione Se ha enviado correctamente o Error de envío en la lista desplegable Seleccionar estado.
Defina una acción Entonces para el estado seleccionado. Por ejemplo, seleccione Navegar a y después escriba o pegue una URL. También puede arrastrar cualquier función con la pestaña Funciones a la regla.
Pulse Listo para guardar la regla.