AJAX – poslání hodnoty – DOM?

Rndoom04
Člen | 75
+
0
-

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)

chemix
Nette Core | 1310
+
0
-

@Rndoom04 je pozde, tak kratce.

Mrkni do dokumentace na payload nebo na redrawControl (muselo by se jednat o komponentu)

Rndoom04
Člen | 75
+
0
-

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
+
0
-

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
+
0
-

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. :)