Formulär
Färdigbyggda kontakt-, offert-, boknings- och registreringsformulär. AI:n lägger in ett med en enda komponent — inget submit-handler att skriva — och varje inlämning hamnar i appens inlämningsinkorg.
Formulär i Proyecta är en förmåga, inte något som AI:n kodar för hand. När din app behöver ett sätt för besökare att nå dig — ett kontaktformulär, en offertförfrågan, en tidsbokning, en eventanmälan — tillhandahåller Proyecta en färdig formulärdefinition och renderar den via ett template-ägt block. Validering, success-tillstånd, lagring av inlämningar och ägarnotifieringar ingår utan extra arbete.
Förinställningarna
Section titled “Förinställningarna”Varje formulär utgår från en av fem inbyggda förinställningar. Beskriv det formulär du vill ha så väljer (och anpassar) Proyecta rätt variant — du bygger aldrig fält från grunden.
| Förinställning | form api id |
Vad det är till för | Passar med |
|---|---|---|---|
| Kontakt | contactForm |
Allmänt “hör av dig”: namn, e-post, valfritt telefon, meddelande | Företagsinformation |
| Offert | quoteForm |
Offertförfrågan: kontaktuppgifter + vilken tjänst + jobbdetaljer | Tjänster |
| Bokning | bookingForm |
Tidsbokning: tjänst, önskat datum och tid, kontaktuppgifter | Tjänster |
| Registrering | registrationForm |
Event- eller kursanmälan (RSVP): deltagaruppgifter + en notering | Events |
| Beställning | orderForm |
Beställningsmottagning: vad kunden vill ha, kontaktuppgifter, noteringar | Meny, katalog |
Du kan ha flera formulär i en och samma app (t.ex. ett kontaktformulär och ett bokningsformulär), och AI:n kan lägga till, byta namn på eller omforma fält i vilket som helst av dem.
Hur AI:n kopplar ihop det
Section titled “Hur AI:n kopplar ihop det”AI:n bygger aldrig ett formulär eller en submit-handler för hand. Den lägger in det template-ägda <FormBlock/> och pekar det mot ett formulär via id eller api id:
import { FormBlock } from '@/components/blocks/FormBlock';
// Var som helst på en publik sida — en kontaktsektion, en "begär offert"-panel osv.<FormBlock form="contactForm" />;<FormBlock/> sköter allt på egen hand:
- Renderar fälten efter typ — text / e-post / telefon som inputs, lång text som en textarea, alternativ som en dropdown, opt-ins som en kryssruta, datum och tider som native-väljare, och filfält som en “bifoga fil”-kontroll.
- Validerar i webbläsaren — obligatoriska fält kontrolleras innan något skickas.
- Validerar på servern — om servern avvisar ett värde visas det specifika felmeddelandet inline bredvid det aktuella fältet (inga förlorade inlämningar, inga tysta fel).
- Visar ett success-tillstånd — vid inlämning ersätts formuläret av en vänlig bekräftelse (formulärets egna bekräftelsemeddelande) med möjlighet att skicka ett nytt svar.
- Misslyckas säkert — om formuläret inte finns eller har inaktiverats renderar blocket ingenting, så det kan aldrig förstöra en publik sida.
Eftersom blocket är template-ägt är AI:ns uppgift bara att placera det och styla den omgivande sektionen — rörmokeriarbetet bakom det är fast och korrekt.
Filbilagor
Section titled “Filbilagor”Formulär kan ta emot en uppladdad fil (ett kvitto, ett referensfoto, en brief). Filfält renderar en “bifoga fil”-knapp, laddar upp filen till lagringen och lägger in dess publika URL i inlämningen. Begränsningar hanteras automatiskt:
- Endast bilder och PDF, upp till 5 MB (stora bilder skalas ned i webbläsaren först).
- Skicka-knappen är inaktiverad medan en fil laddas upp, så en inlämning skickas aldrig halvfärdig.
Var inlämningar hamnar
Section titled “Var inlämningar hamnar”Varje inlämning lagras och visas i appens inlämningsinkorg — en del av adminpanelen, renderad av mallens <SubmissionsInbox/>. Därifrån kan du (ägaren):
- Bläddra bland inlämningar under flikarna New / Read / Archived, med ett oläst-märke på New.
- Öppna valfri inlämning för att se de inskickade fältvärdena, sidan den kom från och datumet.
- Markera en inlämning som read, flytta tillbaka den till new eller archive den.
- Filtrera inkorgen till ett enskilt formulär, eller se alla formulärs inlämningar i en och samma lista.
Inkorgen är bara tillgänglig för admins — läsaren måste vara inloggad med ett adminkonto (kontrolleras på servern).
Få e-post vid varje inlämning
Section titled “Få e-post vid varje inlämning”Formulär kan meddela dig via e-post varje gång någon skickar in — aktivera ägarnotifieringar och ange den adress som ska ta emot dem. Du får leaden i din inkorg utan att behöva öppna appen. E-postmeddelandet skickas via Proyectas e-post-förmåga, så det fungerar utan någon extra konfiguration.
Vanliga mönster (låt AI:n koppla ihop det)
Section titled “Vanliga mönster (låt AI:n koppla ihop det)”"Add a contact form to the footer with name, email, and message, and email me at hello@mybiz.com whenever someone submits.""Put a 'Request a quote' form on each service page that asks which service they need and the job details.""Add a booking form so clients can request an appointment with a preferred date and time.""Create an event registration form for the workshop page and let attendees attach a PDF.""Show me the submissions inbox and only the ones I haven't read yet."
Relaterat
Section titled “Relaterat”- Innehållshantering — formulär lever bredvid dina samlingar i samma innehållsmodell.
- Adminpanel — där inlämningar granskas.
- E-post — hur ägarnotifieringar skickas.