Asynkron inlämning av adaptiva formulär asynchronous-submission-of-adaptive-forms
Adobe rekommenderar att du använder den moderna och utbyggbara datainhämtningen Core Componentsför att skapa nya adaptiva Formseller att lägga till adaptiva Forms på AEM Sites-sidor. De här komponenterna utgör ett betydande framsteg när det gäller att skapa adaptiva Forms-filer, vilket ger imponerande användarupplevelser. I den här artikeln beskrivs det äldre sättet att skapa Adaptiv Forms med baskomponenter.
Som standard är webbformulär konfigurerade att skicka synkront. När användare skickar ett formulär omdirigeras de i synkron överföring till en bekräftelsesida, en tacksida eller en felsida om det uppstår ett överföringsfel. Moderna webbupplevelser som single page-applikationer blir dock allt populärare, där webbsidan är statisk medan klient-server-interaktion sker i bakgrunden. Du kan nu ge den här upplevelsen tillgång till adaptiva formulär genom att konfigurera asynkron överföring.
När en användare skickar in ett formulär i asynkron form plugin-program för formulärutvecklare, som omdirigering till ett annat formulär eller till ett separat avsnitt på webbplatsen. Författaren kan också plugin-program för olika tjänster, som att skicka data till ett annat datalager eller lägga till en anpassad analysmotor. Om det finns asynkron överföring fungerar ett adaptivt formulär som ett program med en sida, eftersom formuläret inte läses in igen eller dess URL inte ändras när skickade formulärdata valideras på servern.
Läs vidare för mer information om asynkron överföring i adaptiva formulär.
Konfigurera asynkron överföring configure
Så här konfigurerar du asynkron sändning för ett adaptivt formulär:
-
I redigeringsläget för anpassningsbara formulär markerar du objektet Formulärbehållare och väljer för att öppna dess egenskaper.
-
Aktivera Use asynchronous submission i egenskapsavsnittet för Submission.
-
I avsnittet On Submit väljer du något av följande alternativ för att skicka formulär.
- Redirect to URL: Omdirigerar till angiven URL eller sida när formulär skickas. Du kan ange en URL eller bläddra för att välja sökvägen till en sida i fältet Redirect URL/Path.
- Show Message: Visar ett meddelande om att formulär har skickats. Du kan skriva ett meddelande i textfältet under alternativet Visa meddelande. Textfältet har stöd för RTF-formatering.
-
Välj för att spara egenskaperna.
Hur asynkron inlämning fungerar how-asynchronous-submission-works
AEM Forms har färdiga funktioner och felhanterare för att skicka in formulär. Hanterare är funktioner på klientsidan som körs baserat på serversvaret. När ett formulär skickas skickas data till servern för validering, som returnerar ett svar till klienten med information om om huruvida överföringen lyckades eller inte. Informationen skickas som parametrar till den relevanta hanteraren för att köra funktionen.
Dessutom kan formulärförfattare och utvecklare skriva regler på formulärnivå för att åsidosätta standardhanterare. Mer information finns i Åsidosätta standardhanterare med regler.
Låt oss först granska serversvaret för att se om det har lyckats eller inte.
Serversvar för lyckad sändning server-response-for-submission-success-event
Strukturen för serversvaret för händelsen att överföringen lyckades är följande:
{
contentType : "<xmlschema or jsonschema>",
data : "<dataXML or dataJson>" ,
thankYouOption : <page/message>,
thankYouContent : "<thank you page url/thank you message>"
}
Serversvaret om det finns ett godkänt formulär innehåller:
- Typ av formulärdataformat: XML eller JSON
- Formulärdata i XML- eller JSON-format
- Markerat alternativ för omdirigering till en sida eller för att visa ett meddelande som konfigurerats i formuläret
- Sidans URL- eller meddelandeinnehåll som konfigurerats i formuläret
Hanteraren för lyckade åtgärder läser serversvaret och dirigerar därför om till den konfigurerade sidans URL eller visar ett meddelande.
Serversvar för en felhändelse för överföring server-response-for-submission-error-event
Strukturen för serversvaret för en felhändelse vid överföring är följande:
{
errorCausedBy : "<CAPTCHA_VALIDATION or SERVER_SIDE_VALIDATION>",
errors : [
{ "somExpression" : "<SOM Expression>",
"errorMessage" : "<Error Message>"
},
...
]
}
Om ett fel uppstår när formulär skickas innehåller svaret:
- Orsak till felet, misslyckades med CAPTCHA eller validering på serversidan
- Lista över felobjekt, som innehåller SOM-uttrycket för fältet som inte kunde valideras och motsvarande felmeddelande
Felhanteraren läser serversvaret och visar därför felmeddelandet i formuläret.
Åsidosätta standardhanterare med regler custom
Formulärutvecklare och författare kan skriva regler på formulärnivå i kodredigeraren för att åsidosätta standardhanterare. Serversvaret för lyckade händelser och felhändelser visas på formulärnivå, som utvecklare kan komma åt med $event.data
i regler.
Utför följande steg för att skriva regler i kodredigeraren för att hantera lyckade händelser och felhändelser.
- Öppna det adaptiva formuläret i redigeringsläge, markera ett formulärobjekt och välj för att öppna regelredigeraren.
- Välj Form i trädet Formulärobjekt och välj Create.
- Välj Code Editor i listrutan för lägesval.
- Välj Edit Code i kodredigeraren. Välj Edit i bekräftelsedialogrutan.
- Välj Successful Submission eller Error in Submission i listrutan Event.
- Skriv en regel för den valda händelsen och välj Done för att spara regeln.