AJAX – poslání hodnoty – DOM?
- Rndoom04
- Člen | 75
Zdravím. :)
Rád bych se zeptal, jakým způsobem je možné poslat skrze handler hodnotu? Konkrétně mi jde o to, že mám napsaný krátký generátor textu/HTML. Uživatel kliká a tím tvoří obsah. Obsah se netvoří do žádného textarea, ale tvoří se jako HTML. Tedy – vím, kde je začátek generovaného obsahu a kde konec. Je to vše v <div id'generated'>obsah</div>. A já bych rád skrze handler poslal ten obsah, který může být krátký, ale i dlouhý, včetně HTML tagů. Případné vnořené PHP/JS scripty ošetřuji před zápisem do databáze.
Mám zatím napsané:
public function handleSave()
{
// some magic...
$this->dbManager->save($kampanID,"zkusebni text");
// some magic...
}
<a n:href="save!" class="ajax">Uložit a pokračovat</a>
Ale vůbec nevím, jakým způsobem poslat úplně vše, co se v tom tagu <div id'generated'>obsah</div>. Děkuji za odpověď. :)
Edit: V JS by to nebylo problém, tam by se stačilo pohrabat v DOM
$("#generated").html();
Editoval Rndoom04 (7. 9. 2019 23:23)
- Rndoom04
- Člen | 75
chemix napsal(a):
@Rndoom04 je pozde, tak kratce.
Mrkni do dokumentace na payload nebo na redrawControl (muselo by se jednat o komponentu)
Děkuji za odpověď. :)
Co jsem akorát našel, tak redrawControl slouží k updatu konkrétní části stránky. To jsem našel už ve chvíli, kdy jsem se to snažil propojit se snippetem (bezúspěšně) ← To nepotřebuji. A co se týče payloadu, tak jsem našel pouze jak poslat skrze handler hodnotu do javascriptu. Potřeboval bych to přesně obráceně. Možná hledám špatně.. :O
Potřebuji poslat kus vygenerovaného HTML, který je v divu, jehož element id znám do handleru. :) Vím, že by to šlo vyřešit přes formuláře, ale zrovna tento konkrétní příklad přes formulář řešit nemohu a ani nechci.
- chemix
- Nette Core | 1310
Aha, minul jsem tu obracenou cestu. Tak to musis poresit pres JS nejak si nacist ten obsah do promene a poslat ho pres ajax na handle adresu.
Idealni je si handle adresu dat do data atributu pres late
<div id=mojegenerovanehtml data-ajax-url={link handleName!}”>
U tveho prikladu “save!”
A v JS se pak postarat o zbytek. Muzes mala data posilat pres GET ale vetsi bych posilal POSTem. V PHP se k tomu da pristupovat pres Nette metody pro ocisteni fomularovych dat viz dokumentace low level formulare https://doc.nette.org/cs/forms#…
A pro snazsi jasnejsi odpoved muzes pouzit send Json response a dat tak js zpet vedet ze se neco stalo https://api.nette.org/…esenter.html#…
- Rndoom04
- Člen | 75
chemix napsal(a):
Aha, minul jsem tu obracenou cestu. Tak to musis poresit pres JS nejak si nacist ten obsah do promene a poslat ho pres ajax na handle adresu.
Idealni je si handle adresu dat do data atributu pres late
<div id=mojegenerovanehtml data-ajax-url={link handleName!}”>
U tveho prikladu “save!”
A v JS se pak postarat o zbytek. Muzes mala data posilat pres GET ale vetsi bych posilal POSTem. V PHP se k tomu da pristupovat pres Nette metody pro ocisteni fomularovych dat viz dokumentace low level formulare https://doc.nette.org/cs/forms#…
A pro snazsi jasnejsi odpoved muzes pouzit send Json response a dat tak js zpet vedet ze se neco stalo https://api.nette.org/…esenter.html#…
Super, děkuji moc! :) Vyřešeno. :)