#1 10. 6. 2009 22:45

Solution
Člen
Registrovaný: 2. 4. 2009
Příspěvky: 18

Přidání elementu do formuláře

Zdravim všechny, dělám zrovna jeden projekt, kde majitel požaduje možnost přidávání selectu, inputů pomocí:„Přidat další možnost“, ale bez rlgu stránky, aby mu nezmizely data. Přidání inputu by ještě šlo, ale potřebuji tam víckrát, napadlo mě to nějak takto: Nejdříve input

var c=20;

function try_g(){
if (c!=0){
c = c-1;
}
}
$('#next').click(function(){
$(".formm").append("<input type="text" name="option+c" />");
});
a ve formu:
<input id="next" type="button" value="Další" onclick="try_g();"/>

Nejsem si jist, jestli to tak může být a co se týče toho „zkopírování“ selectu, máte někdo nějakou ideu? Díky, Padi.

Offline

 

#2 11. 6. 2009 8:34

phx
Moderator
Místo: HK
Registrovaný: 17. 4. 2008
Příspěvky: 780
Web

Re: Přidání elementu do formuláře

Osobne si mylsim, ze by to melo fungovat i bez JS.

Lepsi by bylo pouzit inputy jako pole tz name=„option[]“. Pak to v php budes mit jako pole a nemusis nic rucne cislovat:)

Offline

 

#3 11. 6. 2009 14:21

Solution
Člen
Registrovaný: 2. 4. 2009
Příspěvky: 18

Re: Přidání elementu do formuláře

Kdybych to mohl dělat přes phpko, tak to není problém, jednu takovou verzi jsem už měl během chvíle hotovou, ale php „neukáže“ žádnou změnu bez relogu, právě proto musím použít JS:-)

Offline

 

#4 12. 6. 2009 9:33

nAS
Člen
Místo: Praha
Registrovaný: 18. 12. 2008
Příspěvky: 223
Web

Re: Přidání elementu do formuláře

Já asi přesně nechápu podstatu dotazu, ale souhlasím s phx, že ideální je prvky pojmenovávat jako pole. Na straně klienta to budeš mít jednodušší a stejně ty data na serveru nějak zpracovávat musíš, takže se ti pole bude hodit.

A stejně tak souhlasím s tím, že by každý formulář měl fungovat i bez JS. Co ti brání v tom udělat to tlačítko na přidání několika řádků jako submit button, který překreslí celý formulář s předvyplněnými hodnotami a přidá pár řádek navíc?


$application->run(); // Run Forrest, run!

@MartinMajor

Offline

 

#5 13. 6. 2009 20:09

Solution
Člen
Registrovaný: 2. 4. 2009
Příspěvky: 18

Re: Přidání elementu do formuláře

Pánové, pánové, sice už jsem to vyřešil, ale pro objasnění. Potřebuji, aby když si uživatel klikne na: „Další možnost“, aby mu tam předvybrané hodnoty zůstaly, ten form se odesílá pomocí externího souboru, který je mimo CMS, takže nevim, jak bych ho zpracovával a vracel ještě v původním tvaru s novým inputem, to by bylo zbytečně moc náročné, takhle jsem to vyřešil jednou fcí v jquery a to append, která je na jednom řádku.

Offline

 

#6 13. 6. 2009 23:36

Tomik
Nette Evangelist
Místo: Roztoky
Registrovaný: 20. 3. 2005
Příspěvky: 565
Web

Re: Přidání elementu do formuláře

Solution napsal(a):

Pánové, pánové, sice už jsem to vyřešil, ale pro objasnění. Potřebuji, aby když si uživatel klikne na: „Další možnost“, aby mu tam předvybrané hodnoty zůstaly, ten form se odesílá pomocí externího souboru, který je mimo CMS, takže nevim, jak bych ho zpracovával a vracel ještě v původním tvaru s novým inputem, to by bylo zbytečně moc náročné, takhle jsem to vyřešil jednou fcí v jquery a to append, která je na jednom řádku.

Stejně bych doporučoval to ještě nějak zprovoznit na serveru, aby to fungovalo i bez js. To tlačítko na přidání nového řádku může vést na tvůj script, který jen přidá nový řádek a ostatním nechá jejich hodnoty, a takový formulář vrací uživateli. A až po kliknutí na tlačítko „Odeslat“ by došlo k přesměrovávání na zpracovávající script mimo CMS.

Offline

 

#7 16. 6. 2009 14:29

Solution
Člen
Registrovaný: 2. 4. 2009
Příspěvky: 18

Re: Přidání elementu do formuláře

Tomík, bud si mě stále nepochopil nebo mě „neposloucháš“ :-). Jak se mohou ty hodnoty uložit? Když se ten form ještě neodeslal hmm? Ty hodnoty tam natuká ten daný uživatel. Jasné ty hodnoty se daj uložit a poslat do db, ale zase bych tam musel vracet id, pod kterýma se maj vytáhnout a to mi přijde, jako nesmysl, plácat jedno přes druhé.

Offline

 

#8 16. 6. 2009 14:55

phx
Moderator
Místo: HK
Registrovaný: 17. 4. 2008
Příspěvky: 780
Web

Re: Přidání elementu do formuláře

Nikdo nerika, ze po kliknuti na tlacitko „pridat dalsi“ musis data hned ukladat do DB!

Jak to delas kdyz ti nekdo nevyplni data dle tvych pozadavku (opomene povinou lolozku)? Protocis formular BEZ ulozeni, predvyplnis jiz vyplnena data a vynadas uzivateli. Pote kdyz bude vse OK ukladas!

Zde to bude podobne: Prijmes data, zjistiz ze uzivatel nechce ukladat, ale chce dalsi okenko, tak protocis formular, vyplnis prijate hodnoty do formulare a pridas ono okenko. Zadne ukladani do DB.

Offline

 

#9 16. 6. 2009 21:03

Solution
Člen
Registrovaný: 2. 4. 2009
Příspěvky: 18

Re: Přidání elementu do formuláře

Bohužel klient si to přeje takto, jelikož je ta aplikace konstruována pro „burany“(jeho slova).

Offline

 

#10 17. 6. 2009 13:07

phx
Moderator
Místo: HK
Registrovaný: 17. 4. 2008
Příspěvky: 780
Web

Re: Přidání elementu do formuláře

Chce aby po kliknuti na „pridat dalsi“ se data ulozila a znovu obevila k editaci s novym okenkem? A nebo chce aby to slo POUZE pres JS?

Offline

 

#11 17. 6. 2009 14:39

Solution
Člen
Registrovaný: 2. 4. 2009
Příspěvky: 18

Re: Přidání elementu do formuláře

Dívej, přijdeš na formulář z prvního kroku, tam jsou nové nevyplněné kolonky a on si je vyplní a jsou tam 4 selecty na zvolení něčeho, on si tam natuká něco chce odeslat, ale najednou si uvědomí, že tam ještě potřebuje jednu věc, tak klikne: „přidat další možnost“ a ono se mu tam přidá přes JS, pokud by to šlo přes phpko, tak bych ty data, co tam on vyplnil musel někam uložit a zpětně vytáhnout, což je náročný docela(ne náročný, ale zbytečný), takhle se mu tam přes jsko objeví nový select a nemusim nic hned ukládat.

Offline

 

#12 17. 6. 2009 15:16

Tomik
Nette Evangelist
Místo: Roztoky
Registrovaný: 20. 3. 2005
Příspěvky: 565
Web

Re: Přidání elementu do formuláře

Solution napsal(a):

Dívej, přijdeš na formulář z prvního kroku, tam jsou nové nevyplněné kolonky a on si je vyplní a jsou tam 4 selecty na zvolení něčeho, on si tam natuká něco chce odeslat, ale najednou si uvědomí, že tam ještě potřebuje jednu věc, tak klikne: „přidat další možnost“ a ono se mu tam přidá přes JS, pokud by to šlo přes phpko, tak bych ty data, co tam on vyplnil musel někam uložit a zpětně vytáhnout, což je náročný docela(ne náročný, ale zbytečný), takhle se mu tam přes jsko objeví nový select a nemusim nic hned ukládat.

Moje rada zní: udělej to tak, aby to fungovalo i bez JS, není to nic složitého, pouze po kliknutí na „Přidej další“ se místo ukládání zobrazí ten samý formulář s vyplněnými daty (ty se nemusí nikam ukládat, stačí je pouze vypsat z pole $_POST) a dalším novým políčkem.

A potom pouze na to tlačítko „Přidej další“ navážeš js (např. jQuery), aby to formuláře přidal další položku (a zakážeš odesílání). Výsledek: formulář bude fungovat jak s JS (bez reloadu a odesílání dat na serveru), tak bez něj.

Klient si myslím, zcela jistě nepožadoval, aby to fungovalo jen s JS.

Offline

 

Zápatí