# Mező dinamikus kitöltése lekérdezési karakterlánccal, shortcode-dal, blokkal és kóddal

> A dinamikus kitöltés három lépése, a négy módszer (webcím, shortcode, blokk, hook), mikor melyiket használd, és a paraméternevek szabályai.

A dinamikus kitöltéssel egy mező értékét (vagy a mező típusától függően több értékét) kívülről adhatod át: webcímben, shortcode-ban, az űrlap blokkjában vagy kóddal. Három lépésből áll:

1. Megadod, melyik mező legyen kitöltve.
2. Megadod, hogyan történjen a kitöltés.
3. Megadod, milyen értékkel.

## A mező kijelölése

1. Jelöld ki a mezőt az űrlapszerkesztőben.
2. A **Mező beállításai** között nyisd ki a **Haladó** szakaszt.
3. Jelöld be a **Mező dinamikus kitöltésének engedélyezése** négyzetet.
4. A megjelenő **Paraméternév** mezőbe írd be a paraméter nevét. Ez az azonosító mondja meg a Gravity Formsnak, melyik mezőt töltse ki.

## A paraméternevek szabályai

- **Kis- és nagybetű:** a név megkülönbözteti őket, a `parameter_name` és a `PARAMETER_NAME` nem egyezik.
- **Fenntartott szavak:** ne használj WordPress által lefoglalt kifejezést. Gyakori hiba a `name`, amely `404 Not Found` hibát okoz. Jó gyakorlat saját előtagot használni, például `sa_number` a `number` helyett.
- **Et-jel:** az `&` nem szerepelhet a paraméter nevében vagy értékében.

## 1. Webcím (lekérdezési karakterlánc)

Fűzd az oldal webcíméhez a paramétert és az értéket:

```text
http://oldalam.hu/urlap/?parameter_neve=ertek
```

Ha az oldalon van űrlap, a `parameter_neve` paraméterű mező az `ertek` értéket kapja. Jelölőnégyzetek és többválasztós mezők előre kijelöléséhez vesszővel elválasztott listát adj meg. A választós mezők értékei megkülönböztetik a kis- és nagybetűt.

Egyes tárhelyek (például a WP Engine) a lekérdezési paramétereket is gyorsítótárazzák. Ha a mező nem töltődik ki, ellenőrizd, hogy nem gyorsítótárból érkezik-e az oldal.

Példa: ügynökök listájánál minden ügynök mellé tehetsz hivatkozást egy kapcsolati űrlapra, amelynek webcíme tartalmazza az ügynök e-mail-címét. Az űrlap e-mail-mezője ezt a paramétert fogadja, így nem kell ügynökönként külön űrlap. Ha nem akarod, hogy a látogató módosítsa a kitöltött értéket, a mező **Láthatóság** beállításánál válaszd az adminisztratív megjelenítést.

## 2. Shortcode

A shortcode `field_values` paraméterében több dinamikus kitöltési paramétert is megadhatsz, `&` jellel elválasztva:

```text
[gravityform id="1" field_values="parameter_nev1=ertek1&parameter_nev2=ertek2"]
```

Hasznos, ha több bejegyzés ugyanazt az űrlapot használja, de mindegyiknek más érték kell. Például egy rendezvényre jelentkező űrlapban az esemény mezőjének paramétere `event_name`, és minden eseményoldalon más nevet adsz át:

```text
[gravityform id="1" field_values="event_name=Tavaszi workshop"]
```

## 3. Blokk

Az űrlap blokkjának **Haladó** lapján található **Mezőértékek** szövegmezőbe ugyanígy írhatod a paramétereket:

```text
parameter_nev1=ertek1&parameter_nev2=ertek2
```

Ha az **Előnézet** beállítás is be van kapcsolva, a blokk a szerkesztőben valós időben mutatja a kitöltött értékeket. A módszer ugyanazt tudja, mint a shortcode, de kényelmesebben.

## 4. Hook (kód)

Ez adja a legrugalmasabb kitöltést, de egy kis PHP-tudás kell hozzá:

```php
add_filter( 'gform_field_value_your_parameter', 'my_custom_population_function' );
function my_custom_population_function( $value ) {
    return 'boom!';
}
```

A kód minden `your_parameter` paraméterű mezőt a függvény visszatérési értékével tölt ki, itt a `boom!` szöveggel. A kódot a téma `functions.php` fájljába, egy saját funkcióbővítménybe, saját kiegészítőbe vagy kódrészlet-bővítménybe teheted.

## Korlát

A funkció PHP-vel kéri le és tölti ki az értékeket, ezért gyorsítótárazott oldalon nem működik: a gyorsítótár megakadályozza a PHP futását. Ez nem a Gravity Forms hibája.
