Nefunkční default hodnota při ajax požadavku

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

Nette 2.0-beta 6889b94 released on 2011–08–04
Potřebuju ručně vykreslit formulář.
Každý kontejner je obalený do <fieldlist></fieldlist>
informaci pro <legend /> stahuju z hidden položky(které nevykreslím) v daném kontejneru

<?php
$container->addHidden(Container::NAME_CONST, $name);
?>

při standardním požadavku všechno funguje jak má, ale když chci formulář stáhnout AJAXem, tak prostě hidden pole neobsahuje udanou výchozí hodnotu, pokusil jsem se i o

<?php
unset($_SERVER["HTTP_X_REQUESTED_WITH"]);
?>

ale nepomáhá to.

Čím by to mohlo být?

Děkuji za odpověď

Editoval ybznek (30. 8. 2011 3:38)

Ot@s
Backer | 476
+
0
-

unset($_SERVER["HTTP_X_REQUESTED_WITH"]); je určitě špatná cesta.

Kde máš umístěný kód pro vyplnění výchozích hodnot formuláře? Dostane se AJAXový požadavek k parametrům potřebným k získání výchozích hodnot? Zkus si dumpovat obsah klíčových proměnných (via FireBug). Poslal jsi málo indícií… Pošli fragmenty kódu.

uestla
Backer | 799
+
0
-

Hlavně mi přijde zvláštní ten přístup – proč něco stahovat z hidden pole, které stejně potom nevykreslím, když to do té legendy můžu dát rovnou… ?

ybznek
Člen | 10
+
0
-

uestla:
Klasické groups nejdou udělat vnořené a a container z jistého důvodu potřebuju mít pojmenované, tak jak jsou.

Ot@s:
Používám jen nette forms. A I když se si nejsem vědom, žebych měl rozdíl ve zpracování požadavků, prostě se to zpracovává jinak. Zkusím to ještě přes firebug…

<?php

         $container = $this->form->addContainer($containerName);
         if ($name !== NULL)
         {
             $container->addHidden(Container::NAME_CONST, $name);
         }

//setValues / setDefaults momentálně v kódu nikde není
?>

Editoval ybznek (30. 8. 2011 9:42)

ybznek
Člen | 10
+
0
-

když to dumpnu hned po vytvoření hidden elementu, tak je value prázdná

<?php
if ($name !== NULL)
         {
             $container->addHidden(Container::NAME_CONST, $name);
             $container[Container::NAME_CONST]->value=$name;
         }
?>

Takhle se to dá zprovoznit, ale nechápu proč je to takhle…

uestla
Backer | 799
+
0
-

První způsob nastavuje defaultValue, kdežto druhý natvrdo hodnotu. DefaultValue se nenastavuje mj. tehdy je-li formulář odeslán.

EDIT:

Čili pro jednoduchost

if ($name !== NULL)
{
	$container->addHidden(Container::NAME_CONST)
			->setValue($name);
}

Editoval uestla (30. 8. 2011 10:51)

ybznek
Člen | 10
+
0
-

Díky moc :)