východzie dáta do editačného formulára z databázy a jQuery

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

Prechádzal som fórum a nenašiel som spôsob ako vyriešiť môj problém, tak skúsim tuto. Mám zoznam záznamov a pri každom obrázok „editovať“ a keď naňho kliknem tak mi moja jQuery funkcia zobrazí widget aj s daným formulárom:

<div class="editovat_form" id="edit_form_{$iterator->getCounter()}">
  <img src="{$basePath}/obr/no.png" alt="zatvoriť" title="zatvoriť formulár"
       class="editovat_close" id="{$iterator->getCounter()}" />
  {control editForm}
</div>

No a v presenteri mám samotnú továreň na komponentu. Tá sa mi zobrazí super, ale neviem ako mám do toho zobrazeného formulára dať dáta z databázy, aby ich mohol užívateľ editnúť a nemusel ich písať celé nanovo. Problém je, že v továrni nemám ako zistiť, aký záznam editujem, lebo do widget sa nedajú dať žiadne argumenty. Tým, že to robím cez jQuery tak to nieje „action“ cez ktorú by som si to „idečko“ poslal.

Veľmi ocenim nejaké tipy ako to riešiť.

Aurielle
Člen | 1281
+
0
-

Do makra control/widget klidně můžeš argumenty předat.

dubak
Člen | 41
+
0
-

gmvasek napsal(a):

Do makra control/widget klidně můžeš argumenty předat.

Hmmmm, niekde na fóre som si prečítal, že sa to nedá, tak som sa tým riadil. Čiže môžem použiť niečo takéto?

{control editForm, id=>'hodnota'}
dubak
Člen | 41
+
0
-
Aurielle
Člen | 1281
+
0
-

Můžeš si nad AppFormem vytvořit obálku, které ten argument budeš moct předat. Nicméně mi není jasné, jak vlastně chceš určit editovaný obrázek. (Proměnná $iterator->counter není směrodatná, nemáš tam žádné ID.)

dubak
Člen | 41
+
0
-

gmvasek napsal(a):

Můžeš si nad AppFormem vytvořit obálku, které ten argument budeš moct předat. Nicméně mi není jasné, jak vlastně chceš určit editovaný obrázek. (Proměnná $iterator->counter není směrodatná, nemáš tam žádné ID.)

No, ako si vytvorím obálku mi nie je jasné, lebo neviem čo to je, resp. som to doteraz nikdy nepoužil. Veľmi ocením ukážku.

Čo sa týka ID obrázku, niesom si istý čo tým myslíš, veď ID záznamu si chcem práve predať dovnútra AppForm create element továrne a to mám už načítané v šablóne v premennej. Ak máš na mysli ako zaručím otvorenie formulára pod príslušným obrázkom obrázkom záznamu, tak to som už vyriešil cez jQuery a práve spomínaný {$iterator->getCounter()}

dubak
Člen | 41
+
0
-

Tak aby som to len ukončil:
čo sa týka obálky, už som sa dopátrl k tomu čo by to mohlo byť, ja si pod týmto pojmom predstavujem rozšírenie triedy na tvorbu komponentov o abstraktného predka a z detskej triedy potom k metodam rodičovskej triedy pristupujem. Ale toto môj problém nevyriešilo, lebo sa to vykoná opäť až po refresh stránky (akcii).
Môj problém som vyriešil manuálnym napísaním formulára do šablóny a naplnením dátami z pola, ktoré tam už mám. Pred odoslaním editovaného formulára si overujem pomocou jQuery validitu dát a samotný formulár mi spracuje handler.
Čiže som nevyužil továreň na komponenty, ale v tomto prípade to vôbec nevadí, architektúra MVP bola dodržaná.