Ako spracovať POST dáta odoslané ajaxom do signálu?

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

Zdravím,

narazil som na problém. Ak odosielam dáta jQuery metódou post napríklad:

<?php

//v šablóne

<a href="{link delete!, 'id' => 1}" class="ajaxpost" data-test="{ text: 'hahaha'}">send</a>

//to odošlem

	$("a.ajaxpost").live("click", function (event) {
		event.preventDefault();
		$.post(this.href, $(this).data('test'));
	});

// v presenteri mám

	public function handleDelete($id)
	{
		Nette\Diagnostics\Debugger::dump($this->getHttpRequest());
		$this->terminate();
	}

?>

V dumpe nemám žiadné POST dáta, ktoré sa odoslali ajaxom do handlera. Ako sa mám k ním dostať? (ak je to možné) Tu na fóre som sa dočítal, že handle<signal> nevie prijímať POST a v ďalšom threade som sa dočítal, že vie ale nejako sa mi k tomu nedarí dostať. Ak sa to dá? Mohol by niekto sem uviesť príklad ako dostať do aplikácie tie POST dáta a spracovať ich?

Za všetky postrehy budem veľmi vďačný.

Editoval misiak (16. 7. 2011 11:50)

nanuqcz
Člen | 822
+
0
-

Ahoj, myslím, že bude problém v tom, že jQuery vezme hodnotu z data-test jako string, ne jako JSON.

Tzn rozdíl mezi

<script>
$.post(this.href, "{ text: 'hahaha'}");
</script>

a

<script>
$.post(this.href, { text: 'hahaha'});
</script>

Jak to ale zprovoznit, nevím. Zkus kdyžtak do toho data-test hodit querystring, třeba to jQuery vezme :-) data-test="text=hahaha".

misiak
Člen | 28
+
0
-

Vďaka za odpoveď, vôbec mi to nenapadlo že by to mohlo byť tým nakoľko mi firebug ukazoval, že odosielam json tak som to chápal, že je všetko ok :)

Každopádne vďaka, to zapísanie ako query string vo formáte text=hodnota funguje :)

misiak
Člen | 28
+
0
-

Práve som prišiel na to, že sa to dá uviesť aj ako json, tak ak by niekto v budúcnosti mal podobný problém tak tu je riešenie :)

<?php

<a href="{link....}" data-test='{"premenna":"hodnota"}' class="ajaxpost">send</a>

?>