načtení GET a vložení jako podmínky

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
ololol
Člen | 18
+
0
-
<td class="text">{$task->text}</td>
<td class="text" n:if=".....zde nevím...">
                                                        {form newBlogForm1}
                                                        <div >
                                                        {input text}
                                                        {input create}
                                                        </div>
                                                        {/form}
</td>
<td class="action"><a n:href="editName! $task->id" >edit</a></td>

Jak načíst z GET metody že uživatel chce editovat buňku, a zapsat jako podmínku pro vypsání buňky <td> s formulářem pro editaci políčka.??

odkaz edit dělá tento odkaz:
?userTasks-taskId=ID&do=userTasks-editName

Editoval ololol (10. 9. 2012 22:46)

mkoubik
Člen | 728
+
0
-

Vytvoř si v presenteru persistentní parametr $edit a předej si ho do šablony. Pak odkazuj na n:href="this $edit => true" a jako podmínku použij n:if="$edit". Ale samozřejmě by bylo lepší, kdyby sis to celé dal do komponenty.

ololol
Člen | 18
+
0
-

Díky, vyzkouším, a ještě se zeptám:

…Pak odkazuj na n:href=„this $edit ⇒ true“ a jako podmínku použij…

Mám hotový handle editName pro předání signálu, a pak proceduru na zpracování formuláře se změnou názvu text. Bude to fungovat i když to chci předávat jako signál přes Ajax a obnovuje se pouze část stránky ve Snippetu..? Jsem úplný začátečník, tak se omlouvám za (možná) přihlouplé dotazy.

mkoubik
Člen | 728
+
0
-

Jo, to bude fungovat, akorát v handleEdit() musíš nastavit $this->edit = true.

ololol
Člen | 18
+
0
-

Díky, ale nemůžu to rozchodit
přidal jsem do Homepage presenteru persistentní parametr $edit (zkoušel jsem ho přidávat postupně do všech presenterů v aplikaci) avšak marně
Laděnka stále hlásí
Undefined variable: edit

31: <?php if ($edit): ?> <td class=„text“>

zde je ten zápis parametru

class HomepagePresenter extends BasePresenter
{
        /** @persistent */
        public $edit;

Kde dělám chybu? Předem díky

JuniorJR
Člen | 181
+
0
-

Zkusil bych:

// obecně
protected function beforeRender()
{
    $this->template->edit = $this->edit;
}
// nebo konkrétně
public function renderFoo()
{
    $this->template->edit = $this->edit;
}

Editoval JuniorJR (11. 9. 2012 19:39)

ololol
Člen | 18
+
0
-

Tak bohužel

ted jsem zkoušel obě varianty do všech presenterů a stále hlásí

Undefined variable: edit

ololol
Člen | 18
+
0
-

Pozor, ted jsem to nacpal do funkce render a jede to… nevím jestli dobře, ale už zná proměnnou konečně.

public function render()
	{       $this->template->edit = $this->edit;
mkoubik
Člen | 728
+
0
-

Doporučil bych ti, aby sis pořádně přečetl dokumentaci a zkusil si projít quickstart. Metoda „zkopíruju kus kódu z fóra a zkusím ho vkládat na různá místa dokud to nebude fungovat“ asi nebude to pravé.

ololol
Člen | 18
+
0
-

Snažím se pochopit podstatu celého Nette, v qs si právě upravuju jednotlivé funkce a toto předávání parametrů přes Ajax mě zaujalo, tak se snažím o tuto funkci výše. Momentálně nechápu proč to nešlo přes funkci beforeRender ale až v Render …
kažopádně Tvoje rady a od JuniorJR mi byly nápomocné, díky za ně

Mohl bych tě jetě poprosit jak by jsi (nejelegantněji) řešil, aby tlačítko edit zmizelo na aktivním řádku tabulky když se zobrazí editační formulář? A na ostatních řádcích zůstalo… Protože přes parametr edit to nejde, ten je aktivní pro všechny řádky tabulky

mkoubik
Člen | 728
+
0
-

Předpokládám, že si předáváš i nějaké id řádku, abys věděl co edituješ – tak bych to jenom porovnal s id právě vykreslovného řádku.