Odeslání JSONu z javascriptu do aplikace

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
cmelis
Člen | 26
+
0
-

Zdravím,

potřebuji odeslat JSON object z javascriptu do obslužné metody signálu a stále se mi to nedaří.

<script type="text/javascript">
var JSONstring =
{
	...
};
</script>

a odeslání přes get:

<script type="text/javascript">
$.get({link metoda!})
</script>

Kam mám umístit parametr JSONstring tak aby mi do metody handleMetoda($param) přišel jako parametr JSON ?

Tohle samozřejmě nefunguje:

<script type="text/javascript">
$.get({link metoda!, JSONstring})
</script>

Zkoušel jsem to všechno možné ( například pomocí metody getJSON ), i nemožné ale nepodařilo se.

V javascriptu jsem zatím spíše začátečník tak předem děkuji za jakoukoliv radu, či nasměrování blíže k cíli :)

studna
Člen | 181
+
0
-

{link xxx, promennaJS}
Ti nikdy nebude fungovat. Musis to zapsat nejak jako:

<script>
$.post( {link xxx}, JSONstring );
</script>

⇒ routa pro xxx bude jen obycejna routa na nejaky view/handle, bez parametru (nebo s volitelnym parametrem), jinak bys misto linku dostal #, cimz Nette reaguje na to, ze (napr.) chybi parametr pri skladani linku.

Editoval studna (27. 2. 2011 14:32)

Chbox
Člen | 125
+
0
-

mělo by fungovat:

<script type="text/javascript">
$.post('?do=metoda', JSONstring)
</script>

jinak pokud to máš přímo v šabloně a netaháš to externě, kde ti nebude fungovat Latte, tak:

<script type="text/javascript">
$.post( {link metoda!}, JSONstring)
</script>

pozor na escapování pro JSONstring, buď použij 2× {{ nebo mezeru mezi { a daty

Editoval Chbox (27. 2. 2011 14:46)

cmelis
Člen | 26
+
0
-

Jo, funguje to. Díky moc za pomoc :)