Fromulár data ako pole []

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
vsimjak
Člen | 9
+
0
-

Zdravím chcem sa opýtať ako je možné vytvoriť v nette formulár kde sa dajú vyberať dáta týmto spôsobom. Skúšal som rôzne spôsoby ale neúspešne.

Ďakujem

<form action="" method="POST">
    <input type="text" name="name[first]">
    <input type="text" name="name[last]">
    <input type="submit">
</form>

// Result of $_POST (PHP):
// array(
//     'name' => array(
//         'first' => ''
//         'last' => ''
//     )
// )

Editoval vsimjak (10. 10. 2015 9:33)

Jan Tvrdík
Nette guru | 2595
+
+2
-

Hledej addContainer.

Unlink
Člen | 298
+
+3
-

To čo hľadáš su kontajnery
https://doc.nette.org/cs/forms#…

$kontajner = $form->addContainer('name');
$kontajner->addText('first' ...);
vsimjak
Člen | 9
+
0
-

Dakuje za info, ale keď neviem koľko budem mať prvkov vo formuláry. V html sa zadal tag

name="name[first]

a premenne z názvom „name“ sa pridali dali dohromady a vytvorilo sa pole. Ak správne chápem „addContainer“ tak je na rozdelenie prvkov do poli ako niejaká hierarchia.

Editoval vsimjak (10. 10. 2015 11:56)

Unlink
Člen | 298
+
0
-

Čo myslíš tým že nevieš koľko ich tam budeš mať?

vsimjak
Člen | 9
+
0
-

No tak na webe mám pridávanie produktov cez javascript a robí to tak že pridá nový <div> a do neho text. No a keď si tam pridám 10 produktov a dám im input=„hidden“ name="name[1] tak ked odošlem POST tak mi pride pole name a dnu budú všetky produkty z ich id. A neviem ako to urobit v nette.

Mysteria
Člen | 797
+
0
-

Nehledáš náhodou Kdyby/Replicator? Ten umožňuje právě existenci nějakého tlačítka Přidej další produkt, která ti umožní si dynamicky naklikat další formuláře pro přidání / úpravu produktu a pak to najednou odeslat.

vsimjak
Člen | 9
+
0
-

Az teraz som sa dostal k tomu. Idem to pozriet. dakujem za rady.