volani handleru po ajax udalosti

martin28
Člen | 39
+
0
-

Ahoj prosim, kde muze byt problem. pouzivam Ublaboo\DataGrid. Tam mam

$grid->addAction('qr', 'QR', 'getQRimage!')->setClass('btn btn-xs btn-success ajax get_qr')->setTitle(function($item) { return (string)$item->cislo_faktury; });

nasledne

       $('.get_qr').click(function(e) {
              $("#dialog-qr-obsah").html("");
              var id = $(this).attr('title');
              $.nette.ajax( {
                    url: {link getQRimage!},
                    dataType: "html",
                    data: { cislo_faktury: id },
                    complete: function(data){
                        $("#dialog-qr-obsah").html(data.responseText);
                        $("#dialog-qr").modal("show");
                    }
              });
              return false;
        });
public function handleGetQRimageZasilkovnaFaktura($neid) {if ($this->isAjax()) { echo 'xxx'; exit; }  }

tento handler se zavola pri otevreni okna, to funguje super, ale kdyz zavru dialog, tak po novem kliku (bez refreshu) se otevre pouze dialog, ale handler se neprovede? To same kdyz vyhledav v gridu, tak se jiz handler nezavola…kdyz dam refresh tak pote zase jednou ano.

Dekuji za pomoc

Polki
Člen | 553
+
0
-

To je práce javascriptu. NE Nette.

        $(document).on('click', '.get_qr', function(e) {
              $("#dialog-qr-obsah").html("");
              var id = $(this).attr('title');
              $.nette.ajax( {
                    url: {link getQRimage!},
                    dataType: "html",
                    data: { cislo_faktury: id },
                    complete: function(data){
                        $("#dialog-qr-obsah").html(data.responseText);
                        $("#dialog-qr").modal("show");
                    }
              });
              return false;
        });

bude fungovat. Místo $(document) si dej ideálně element, o kterém víš, že se ajaxem nepřekresluje a zároveň je to nejbližší rodič.
třeba $('body')

Tuším dokonce, že už se to tady na fŕu řešilo a jestli ne, tak je to stejně otázka na JavaScript a nepatří tedy do tohoto fóra

martin28
Člen | 39
+
0
-

Dekuji za odpoved, ale toto nebude ten problem, protoze se ajax zavola vzdy, at uz s tim jak to mam ja nebo jak jste psal.

Dialog javasript otevre vzdy, v tom neni problem.

Problem je ze se nezavola ten handler, proto jsem to dal jsem do toho vlakna.

Je problem zrejme v tom ze mam

exit;

v tom handleru jinak se vzdy zavola vse ok, ale bohuzel cela stranka…proto je moje otazka ja se s timto pracuje a jak zastavuje vypis:-)

jendaa
Člen | 6
+
0
-

https://doc.nette.org/…ication/ajax

Pokud potřebujete plnou kontrolu nad odeslaným JSONem, použijte metodu sendJson v presenteru. Tím ihned ukončíte činnost presenteru a obejdete se i bez šablony