Signál z checkBoxu?

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

Je možné v Nette navěsit signál i na inputy, konkrétně checkBox. Pokud ano, jak by to mělo asi vypadat?

bazo
Člen | 620
+
0
-

jedine javascriptom

22
Člen | 1478
+
0
-

hm, hm, jde zavolat metodu třídy přes jQuery?

Editoval 22 (24. 2. 2010 12:38)

toka
Člen | 253
+
0
-

Pokud myslíš handle z presenteru, tak AJAXem.

22
Člen | 1478
+
0
-

jj, handle myslim..v praxi mám tabulku s nějakym seznamem, kde je sloupec s checkboxem. Po zatržení, potřebuju upravit akorat záznam v DB. Jednoduché, když je tam <a href="{…
…ale jak mám poslat přes $.ajax(), kterej handle se má použít? Nebyl by nějaký kratký příklad, jakým směrem se mám vydat?

toka
Člen | 253
+
0
-

Ale jen takový náznak :-)

...
$form->addCheckbox('zobrazit', 'zobrazit')
     ->getControlPrototype()->onchange('doSmth(this.value);');
...
function doSmth(value) {
  $.get("?do=nazevHandle&presenter=Modul%3APresenter", {"value": value}, function(data) {
  ...
  }, "html");
}

EDIT: Takže si přes to value jsi schopen v handle udělat přesně to co potřebuješ se záznamem v DB, který má ID, které si „schováš“ do value toho checkboxu.

Editoval toka (24. 2. 2010 13:12)

redhead
Člen | 1313
+
0
-

Nevím co všechno to má umět, ale v nástinu:

<input type="checkbox" class="edit" />

<script>
$('checkbox.edit').change(function() {
	if($(this).is(':checked')) {
		$.get({link signal!}, ...);		//makro link se prevede na odkaz na signal
	}
})
</script>

snad tam není chyba, nezkoušel jsem.

Editoval redhead (24. 2. 2010 13:19)

22
Člen | 1478
+
0
-

díky pánové, to je ono, Něvěděl jsem, že když pošlu AJAXem

$.get({link change!})

tak to proběhne úspěšně..tak to je dobrý :-)

Editoval 22 (24. 2. 2010 15:05)

22
Člen | 1478
+
0
-

jQuery

$('.akce_box').click(function(){
	$.get({link akce!});
	//alert('Neklikej na mě nebo uvidíš!');
	});

testovací php

...
public function handleAkce(){
$this->redirect('Admin:');
}
...	}

tak nějak to nechodí :-( FF hlasí missing: after property id

toka
Člen | 253
+
0
-

Pokud to zkusím stejně jako ty, resp. podobně – nevím jak přesně to máš, tak to proběhne v pohodě, ani FireBug nehlásí chybu, ale: redirect je sice super, ale k čemu, když se ti to přesměruje v tom AJAXovém dotazu, tím pádem se vlastně na webu nic nestane, ani se nepřesměruje.

22
Člen | 1478
+
0
-

ten tam mam jen kvuli testu, ze se to opravdu na ten handle dostalo..

toka
Člen | 253
+
0
-

22 napsal(a):

ten tam mam jen kvuli testu, ze se to opravdu na ten handle dostalo..

Když mám v šabloně:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="cs">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="{$baseUri}js/jquery-1.4.1.min.js"></script>
    <script type="text/javascript">
    /* <![CDATA[ */
    jQuery(document).ready(function() {
      $('.akce_box').click(function(){
        $.get({link akce!});
      });
    });
    /* ]]> */
    </script>
    <title>DEMO</title>
  </head>
<body>
  <input type="checkbox" class="akce_box" />&nbsp;click me!
</body>
</html>

A v presenteru:

...
// ---------------------------------------------------------------------------
  public function handleAkce() {
    $this->redirect(':Default:edit');
  }
...

Tak FF v pohodě. Chybová konzole nic, a ve Firebugu:

Odezva:
{"redirect":"http:\/\/localhost\/www\/demo\/document_root\/index.php?action=edit"}

Vše v pohodě. FF 3.6 + Firebug 1.5.0.

22
Člen | 1478
+
0
-

hmm, že by byl problem, že ten jQuery script taham ze souboru?

22
Člen | 1478
+
0
-
//<script type="text/javascript" src="{$basePath}/js/admin.js"></script>
<script type="text/javascript">
    jQuery(document).ready(function() {
      $('.akce_box').click(function(){
        $.get({link akce!});
      });
    });
</script>

pokud to natáhnu ze souboru, tak to skonči chybou, pokud dám přímo do šablony, tak to chodí…

toka
Člen | 253
+
0
-

22 napsal(a):

//<script type="text/javascript" src="{$basePath}/js/admin.js"></script>
<script type="text/javascript">
    jQuery(document).ready(function() {
      $('.akce_box').click(function(){
        $.get({link akce!});
      });
    });
</script>

pokud to natáhnu ze souboru, tak to skonči chybou, pokud dám přímo do šablony, tak to chodí…

Ano, tím to je, protože do toho souboru se nedostane Nette a Latte, ten se vloží až u klienta.

22
Člen | 1478
+
0
-

jj, diky moc!
ještě předání proměnné eventuelně. Musí tam být mezery, jinak to nacucne zase Latte filter.

id=$(this).val();
...
$.get({link akce"},{ id:id })
...

Editoval 22 (24. 2. 2010 17:45)