post data z AJAXU do presenteru

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

Ahoj,

snažím se dostat ajax data do presenteru, ale getPost() mi vrací prázdné pole. Chtěl bych to ideálně volat takto napřímo a nevytvářet pro to žádné formuláře atd. Nevíte někdo v čem je problém?

<script>
$.ajax({
	url: '/vc/visiting_card_setting',
	type: 'POST',
	data: {'test': 'test'}
});
</script>
<?php
  public function actionSetting()
  {
    echo var_dump($this->getRequest()->getPost());
    $this->terminate();
  }
?>

a vrací mi to:

array(0) {
}

Dík

Glottis
Člen | 129
+
0
-

ahoj a co ti vraci toto?

<?php
dump($this->getPayload()->test);
?>
peacemaster
Člen | 11
+
0
-

To mi hází chybu.

Undefined property: stdClass::$test

Paradiso
Člen | 101
+
0
-

nezpracovává ti ty data latte? zkus

<script n:syntax="off">
peacemaster
Člen | 11
+
0
-

Tak bohužel to nic nezmenilo.

Ještě jedna věc, když to pošlu GETem, tak to jede bez problému, ale radši bych to posílal POSTem.

Editoval peacemaster (3. 4. 2013 8:43)

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Eeh… přátelé Glottis a Paradiso :). Obě dvě věci přeci nijak nesouvisí se získáním dat z požadavku. Pokud by mělo Latte nějak zbourat to post: { ..., tak by dávno zařvalo výjimkou. ->payload je zase na odesílání dat do prohlížeče, ne zjišťování, co z prohlížeče přišlo.

Vyzkoušej Nette\Http\Request.

$post = $this->getHttpRequest()->getPost();
Glottis
Člen | 129
+
0
-

njn, uz mlcim uz mlcim :)

peacemaster
Člen | 11
+
0
-
<?php
$post = $this->getHttpRequest()->getPost();
?>

Taky nic.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Je správně ta URL? Ta v ukázce se nějak routama převádí na tu akci settings?

peacemaster
Člen | 11
+
0
-

Routa je ok. S getem to jede bez problému.

<?php
    $frontRouter[] = new Route("vc/visiting_card_setting", array(
      'sLocale' => null,
      'presenter' => 'VisitingCard',
      'action' => 'setting',
      'slug' => null
    ));
?>
David Matějka
Moderator | 6445
+
0
-

mrkni do nejaky development konzole v prohlizeci, jestli se spravne poslaly data a zkus dumpnout $_POST