# Ismétlő mező az űrlapban

> Ismétlődő sorok az űrlapban: a csoport eleje és vége, a sorok száma, számolt mezők, és az adatok mentése egy bejegyzés ismétlő metamezőjébe.

Az állandó mezőszámú űrlap sok esetben elég. Ha viszont a látogatónak annyi sort kell kitöltenie, ahányra szüksége van (például vendégek nevét), ismétlődő mezőcsoportot teszel az űrlapba. A látogató sorokat vehet fel és törölhet, a beküldött adatot pedig egy bejegyzés ismétlő metamezőjébe mentheted, és máshol megjelenítheted.

Az űrlapot a **JetEngine → Űrlapok** menüben szerkeszted, az oldalra pedig Elementorral vagy a blokkszerkesztővel teszed be.

## Az ismétlő keretének felvétele

Az ismétlő két részből áll: **Repeatable Field Group Start** és **Repeatable Field Group End**. A kettő közé tett mezők alkotják az ismétlődő sort.

1. Nyisd meg a **JetEngine → Űrlapok** oldalt, és hozz létre új űrlapot, vagy nyiss meg egy meglévőt.
2. Az **Add Field** gombbal vegyél fel egy mezőt, és a **Type** értéke legyen **Repeatable Field Group Start**.
3. Töltsd ki a beállításokat (lásd lent), majd kattints az **Apply Changes** gombra.
4. Vegyél fel egy újabb mezőt, a **Type** értéke legyen **Repeatable Field Group End**, és kattints az **Apply Changes** gombra.
5. A két mező közé tedd az ismétlődő sor mezőit, például két szövegmezőt a vezeték- és keresztnévnek.
6. Kattints a **Publish** (vagy **Update**) gombra.

Fontos, hogy az ismétlő mezőinek a nevei megegyezzenek az ismétlő metamező almezőinek neveivel, ha az adatot el akarod menteni.

### A csoport kezdőmezőjének beállításai

| Beállítás | Mit csinál |
|---|---|
| **Name** | A mező neve. Kisbetűvel, szóköz nélkül írd (kötőjel vagy aláhúzás jó). Jegyezd meg, később kell. |
| **Label** | A sor neve, amelyet a látogató lát. |
| **Description** | Rövid magyarázat arról, mire való a sor. |
| **Manage repeater items count** | Hogyan adódnak hozzá a sorok. **Manually**: a látogató egy gombbal ad hozzá sort, a gomb felirata az **Add New Item Label** mezőben van. **Dynamically (get a count from the form field)**: a sorok száma egy másik űrlapmező értékével egyenlő. |
| **Required** | Kötelező-e kitölteni. |
| **Calculate repeater row value** | Hogyan számolódjon a sorok értéke. **By Default**: csak a sorok számát adja. **Custom**: egyedi képlettel számol minden sorra, és az eredmény az összes sor értékének összege. |
| **Calculation formula** | A képlet. Jobbra látod az űrlap összes mezőjének nevét, ezeket másolhatod be. Összeadhatsz, kivonhatsz, szorozhatsz, oszthatsz. |
| **Default** | A mezők alapértéke. |
| **Add Prev Page Button** | Többoldalas űrlapnál „Previous Page” gombot tesz az űrlapra. |
| **Field Visibility** | Ki látja ezt a részt: mindenki, csak a bejelentkezettek vagy csak a nem bejelentkezettek. |
| **Custom CSS Class** | Egyedi CSS-osztály a megjelenés módosításához. |

Elementorban az űrlap **Stílus** fülén külön lenyíló szakasz szól az ismétlők kinézetéről.

## Számolt mezők az ismétlővel

Kétféleképpen használhatsz számolt (**Calculated**) mezőt az ismétlővel.

**A számolt mező az ismétlőn belül van.** A mező annyiszor ismétlődik, ahány sort a látogató felvesz, és minden sorra külön mutatja az eredményt. Ha például két szám meződ (**adults** és **children**) és egy számolt meződ van, a képlet:

```
%FIELD::adults%+%FIELD::children%
```

Ez a „adults” mező értékét adja a „children” mező értékéhez.

**A számolt mező az ismétlőn kívül van.** A **Calculation Formula** mezőbe a csoport kezdőmezőjének nevét írd, például:

```
%FIELD::start%
```

Ilyenkor a mező az ismétlő sorainak összesített értékét mutatja. A látogató által beírt értékek a **Repeatable Field Group Start** mező **Calculation formula** képlete szerint számolódnak soronként, és az eredmények összegét látja a látogató.

## Az űrlap és az ismétlő metamező összekötése

A beküldött sorok automatikusan bekerülhetnek egy bejegyzés ismétlő metamezőjébe.

### Az ismétlő metamező létrehozása

1. Nyisd meg a **JetEngine → Metaboxok** oldalt, és kattints az **Új hozzáadása** gombra.
2. Add meg a metabox címét, a **Meta doboz célja** legyen **Bejegyzés**, és válaszd ki a bejegyzéstípust.
3. Kattints az **Új metamező** gombra. Add meg a **Címke** és a **Név/ID** értékét (a nevet jegyezd meg), az **Objektum típusa** legyen **Mező**, a **Mező típusa** pedig **Ismétlő**.
4. Vegyél fel annyi almezőt, ahányat az űrlap ismétlője tartalmaz (példa: „Keresztnév” és „Vezetéknév”). Az almező **Type** értéke egyezzen az űrlapmezők típusával, a nevük pedig az űrlapmezők nevével.
5. Add meg a leírást és a mező szélességét, majd kattints a **Metabox hozzáadása** gombra.

### Az űrlap összekötése

1. Nyisd meg a **JetEngine → Űrlapok** oldalt, és az űrlapot, amelyben az ismétlő van.
2. A **Post-submit Actions / Notifications Settings** szakaszban kattints az **Add Notification** gombra.
3. A **Type** legyen **Insert/Update Post**.
4. A **Post Type** az a bejegyzéstípus legyen, amelyhez a metamezőt rendelted.
5. A **Post Status** lehet például **Published**.
6. A **Fields Map** listában minden összekötendő mezőnél válaszd a **Post Meta** lehetőséget, és az új mezőkbe írd be a metamező, illetve az ismétlő almezőinek nevét.
7. Kattints az **Apply Changes**, majd az űrlap frissítéséhez az **Update** gombra.

### Az eredmény ellenőrzése

Nyisd meg az űrlapot tartalmazó oldalt, vegyél fel néhány sort, és küldd be az űrlapot. A bejegyzéstípus listájában minden beküldés új bejegyzést hoz létre. Ha megnyitod a legfrissebbet, a beírt adatok az ismétlő metamezőben vannak.

A mentett adat más oldalon is megjeleníthető a [Dynamic Repeater](https://hub.hellowp.io/hu/plugins/jet-engine/dinamikus-tartalom-ismetlo-widget/) elemmel.
