Autor Zpráva
8vm8
Profil
Ahoj,
úprava vloženého komentáře se teď celkem často používá a mě vůbec nenapadá, jak to provést. Líbí se mi, jak je to udělaný zde na tomto fóru. Stejně tomu je i na fb. Neznáte někdo nějaký návod, jak to vytvořit? Dík za rady.
panther
Profil
8vm8:
co konkrétně nechápeš? Do textarey se vloží text příspěvku z databáze a po dokončení změny (a odeslání formuláře) se provede update daného příspěvku v DB.
8vm8
Profil
Tohle vím, že když odešlu komentář, tak se uloží v databázi a po kliknutí na upravit se načte a po upravení znovu odešle. Spíš mi jde o to, jak po tom kliknutí na upravit, předáš tomu skriptu informace o tom, který komentář má upravovat a jak tam přidáš to textové pole. Navíc se to načte velice rychle bez refreshe.
panther
Profil
8vm8:
Navíc se to načte velice rychle bez refreshe.
AJAX

předáš tomu skriptu informace o tom, který komentář má upravovat
nechce se mi to zkoumat, ale téměř jistě tam bude nějaký hidden input.
Chamurappi
Profil
Reaguji na 8vma8:
AJAXem se načtou hodnoty formulářových prvků pro editaci příspěvku (BB kód příspěvku v <textarea>, jeho ídéčko v <input type=hidden> apod.), tyto hodnoty se nastaví do existujícího formuláře pro psaní nového příspěvku, formulář se přesune na místo toho editovaného, původní obsah buňky se skryje… a při odeslání se AJAXem odešle formulář, v odpovědi přijde nový HTML kód, ten se dá do buňky, formulář se přesune zpátky, vrátí se původní hodnoty prvků a je hotovo. Zpočátku jsem nevěděl, jestli takovou transplantaci formuláře budeme chtít, takže jsem to naskriptoval docela ošklivě a od té doby jsem to moc neučesával.

Hodně JS funkcí tady počítá s tím, že je <textarea> jen jedna, proto se přesouvá. Nebýt jich, bylo by možné stáhnout celý HTML kód editačního formuláře a jednoduše ho plácnout do té buňky, bez nějakého přenastavování <input>ů tam a zpět.
8vm8
Profil
Dík Chamurappi. Tohle je celkem šikovná věcička.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0