Pomoc s ajax selectbox a překreslením snippetu

martin_H
Člen | 32
+
0
-

Ahoj, potřebuji poradit a pomoci.
Učím se Nette a vytvářím appku, která řeší zápujčky. Mam stránku zápujčky, kde je selectbox pro výběr uživatele a chtěl bych po události onChange vykreslit tabulku s věcmi co ma uživatel zapůjčeno. Vím že to řešit přes ajax. Na tlačítko podle návodu zde jsem to v pohodě vyřešil, ale na událost onChange se mi to nijak nedaří. Při použití $.nette.ajax mi konzole háže chybu SyntaxError: missing : after property id

Díky za pomoc

David Matějka
Moderator | 6445
+
0
-

ahoj, ukaz, jak vypada obsluhujici JS kod

martin_H
Člen | 32
+
0
-

script mám v souboru s ostatními skripty

$(document).ready(function () {
        $("#frm-novaZapujcka-user_id").change(function(event)
            $.nette.ajax ({
                url: {link showTech!},

            });
        });
    });
David Matějka
Moderator | 6445
+
+5
-

to {link showTech!} ti v externim souboru fungovat nebude, to funguje pouze v latte. casto se pouziva, ze si tu url ulozis do html data- atributu a v JS si ho vytahnes

martin_H
Člen | 32
+
0
-

David Matějka napsal(a):

to {link showTech!} ti v externim souboru fungovat nebude, to funguje pouze v latte. casto se pouziva, ze si tu url ulozis do html data- atributu a v JS si ho vytahnes

aha… super.. jdu to zkusit… je pravda, že už jsem na to taky myslel, ale pořád jsem hledal tady na foru a nějak nenašel nic co by mě tam trošku nasměrovalo.

Díky

martin_H
Člen | 32
+
0
-

Tak umístnil jsem script do @layout.latte a vše funguje. Bohužel při přechodu na jinou stránku vyhodí app chybu

Invalid link: Unknown signal 'showTech', missing handler App\Presenters\HomepagePresenter::handleshowTech()

v jiném latte souboru mi ten script nefuguje :-(

Phalanx
Člen | 310
+
+1
-

@martin_H Musíš handleShowTech umístit někam výš, např. do BasePresenteru od kterého ti budou dědit HomepagePresenter a všechny další, kde tento handle chceš použít. Zvládneš to?

Ukázkový kód je kdyžtak v sandboxu – https://github.com/…p/presenters

Mrkni na BasePresenter a HomepagePresenter

martin_H
Člen | 32
+
0
-

Tak jsem to přendal do BasePreseneteru… Snippet se překresluje, tedy dumpuju hodnoty z DB. Ale pokud chci projít proměnou a vykreslit tabulku tak se mi nějak nedaří zobrazit výsledky.

V Presenteru tahám přes model data z databáze s podmínkou na id toho vybraného uživatele, které ukládám do proměnné.

$this->zapujcky= $this->database->selectZapujcky()->where('user_id', $id_os);

Ale když si tu proměnou chci dumpnout tak mi vyskočí error.

Object of class Nette\Database\Table\Selection could not be converted to string

Pokud přidám na konec dotazu do DB

->fetch();

tak se mi dump vykreslí,

Nette\Database\Table\ActiveRow #ab8e
table private => Nette\Database\Table\Selection #b10b
data private => array (1)
id => 1
dataRefreshed private => false

to ale zase nemůžu projít foreachem vysledky z proměnné.

Trying to get property of non-object

Děkuji za nakopnutí :-)

Phalanx napsal(a):

@martin_H Musíš handleShowTech umístit někam výš, např. do BasePresenteru od kterého ti budou dědit HomepagePresenter a všechny další, kde tento handle chceš použít. Zvládneš to?

Ukázkový kód je kdyžtak v sandboxu – https://github.com/…p/presenters

Mrkni na BasePresenter a HomepagePresenter

Ondřej Kubíček
Člen | 494
+
0
-

Vrací ti to Selection musíš zavolat fetchAll(), to vrací všechny řádky, fetch() jen jeden

David Matějka
Moderator | 6445
+
+1
-

Ale když si tu proměnou chci dumpnout tak mi vyskočí error.

tu chybu nebude pusobovat dump, ale to, ze se ji asi nekde snazis vykreslit

martin_H
Člen | 32
+
0
-

David Matějka napsal(a):

Ale když si tu proměnou chci dumpnout tak mi vyskočí error.

tu chybu nebude pusobovat dump, ale to, ze se ji asi nekde snazis vykreslit

Zase máš pravdu, proč nemůžu v tomto případě vypsat dumpem obsah?

martin_H
Člen | 32
+
0
-

Ahojte předělal jsem aplikaci na Nittro fw a po vybrání uživatele se mi předtím zobrazovala tabulka s tím co měl uživatel zapůjčeno. V nittro se mi ta tabulka nezobrazí, ale odpověd v prohlížeči je. Nevíte co s tím?

martin_H
Člen | 32
+
0
-

pomůže někdo?