ajax
- pjoter
- Člen | 118
Zdarec řeším teď jednu funkci a potřeboval bych ji volat ajaxově. O co
jde: po kliknutí na odkaz volám onchange funkci v javascriptu a v te pak
potřebuju zpracovat funkci v php, které potřebuju předat proměnnou.
Jelikož ještě nevím jak přesně handlovat v nette řeším to teď
strašně prasácky a chtěl bych to už řešit konečně normálně
i v budoucnu. Proto sem nahodím jak to řeším a kdyby mě někdo ochotný
nasměroval byl bych mu vděčný.
Takže javascript:
<script>
function button_onclick(){
var user_id = {$user};
$.post('{$baseUri}scripts/connect.php', {id:user_id});
alert('Nějaká potvrzující hláška že vše je ok.')
}
</script>
řekněme že bych volal default presenter a v tom bych chtěl handlovat tohleto kliknutí. Jak mám nastavit url v javascriptu a jak mám napsat tu handle funkci a zjistit tu proměnnou $_POST[‚id‘]?
- toka
- Člen | 253
Ale jen takový náznak :-)
// V Presenteru
...
public function handleNazevHandle($value) {
...
}
...
function doSmth(value) {
$.get("?do=nazevHandle&presenter=Modul%3APresenter", {"value": value}, function(data) {
...
}, "html");
}
A pokud ti jde o to $user
, to si v tom handle
krásně získáš přes Environment::getUser();
.
- pjoter
- Člen | 118
<script>
function doSmth(value) {
$.get("?do=nazevHandle&presenter=Front_DefaultPresenter", {"value": value}, "html");
}
</script>
Takhle pokud mám Modul Front nebo tam bylo to %3A schvalne ? to function(data) tam být předpokládám nemusí a nakonec ten user není user z autentizace ale je to úplně jiná proměnná ale jak získat GET proměnnou si najdu v dokumentaci díky
- Etch
- Člen | 403
redhead napsal(a):
Nad tvarem URL bys v nette neměl vůbec přemýšlet, pokud chceš odkazovat na nějakou URL, uvedeš to všude v šabloně (i v JS) úplně stejně:
<a href="{nazevHandle!}">abc</a>
$.get({nazevHandle!}, ....);
Jen mírný OT. Mělo by tam být snad
<a href="{link nazevHandle!}">abc</a>
- toka
- Člen | 253
redhead napsal(a):
Nad tvarem URL bys v nette neměl vůbec přemýšlet, pokud chceš odkazovat na nějakou URL, uvedeš to všude v šabloně (i v JS) úplně stejně:
<a href="{nazevHandle!}">abc</a>
$.get({nazevHandle!}, ....);
Nevím, proč jsem to dělal ručně, když to je práce navíc. Ale jak
píšeš ty, tak to nefunguje, to Latte filtr dle očekávání
„nadává“. Předpokládám, že to má být
{link nazevHandle!}
.
Editoval toka (4. 3. 2010 19:39)
- toka
- Člen | 253
Ano, jen bych doporučoval, s ohledem na vrácený payload
používat u get
parametr určující, v jakém tvaru přijde
odpověď – predchazeni-problemu-s-jquery-ajaxsetup-a-datatype.
Není to nutné, ale raději to sem píši, protože mne to docela
„zaseklo“.