#1 24. 2. 2010 11:01
- 22
- Nette guru

- Místo: Brno
- Registrovaný: 18. 1. 2010
- Příspěvky: 215
Signál z checkBoxu?
Je možné v Nette navěsit signál i na inputy, konkrétně checkBox. Pokud ano, jak by to mělo asi vypadat?
Offline
#2 24. 2. 2010 12:27
- bazo
- Člen
- Registrovaný: 28. 9. 2009
- Příspěvky: 166
Re: Signál z checkBoxu?
jedine javascriptom
Offline
#3 24. 2. 2010 12:34
- 22
- Nette guru

- Místo: Brno
- Registrovaný: 18. 1. 2010
- Příspěvky: 215
Re: Signál z checkBoxu?
hm, hm, jde zavolat metodu třídy přes jQuery?
Editoval 22 (24. 2. 2010 12:38)
Offline
#4 24. 2. 2010 12:49
- toka
- Člen

- Místo: Kostelec nad Orlicí
- Registrovaný: 5. 8. 2009
- Příspěvky: 173
Re: Signál z checkBoxu?
Pokud myslíš handle z presenteru, tak AJAXem.
Offline
#5 24. 2. 2010 12:58
- 22
- Nette guru

- Místo: Brno
- Registrovaný: 18. 1. 2010
- Příspěvky: 215
Re: Signál z checkBoxu?
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?
Offline
#6 24. 2. 2010 13:11
- toka
- Člen

- Místo: Kostelec nad Orlicí
- Registrovaný: 5. 8. 2009
- Příspěvky: 173
Re: Signál z checkBoxu?
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)
Offline
#7 24. 2. 2010 13:17
- redhead
- Nette guru
- Registrovaný: 2. 5. 2009
- Příspěvky: 630
Re: Signál z checkBoxu?
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)
Offline
#8 24. 2. 2010 13:29
- 22
- Nette guru

- Místo: Brno
- Registrovaný: 18. 1. 2010
- Příspěvky: 215
Re: Signál z checkBoxu?
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)
Offline
#9 24. 2. 2010 15:56
- 22
- Nette guru

- Místo: Brno
- Registrovaný: 18. 1. 2010
- Příspěvky: 215
Re: Signál z checkBoxu?
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
Offline
#10 24. 2. 2010 16:48
- toka
- Člen

- Místo: Kostelec nad Orlicí
- Registrovaný: 5. 8. 2009
- Příspěvky: 173
Re: Signál z checkBoxu?
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.
Offline
#11 24. 2. 2010 16:54
- 22
- Nette guru

- Místo: Brno
- Registrovaný: 18. 1. 2010
- Příspěvky: 215
Re: Signál z checkBoxu?
ten tam mam jen kvuli testu, ze se to opravdu na ten handle dostalo..
Offline
#12 24. 2. 2010 17:04
- toka
- Člen

- Místo: Kostelec nad Orlicí
- Registrovaný: 5. 8. 2009
- Příspěvky: 173
Re: Signál z checkBoxu?
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" /> 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.
Offline
#13 24. 2. 2010 17:06
- 22
- Nette guru

- Místo: Brno
- Registrovaný: 18. 1. 2010
- Příspěvky: 215
Re: Signál z checkBoxu?
hmm, že by byl problem, že ten jQuery script taham ze souboru?
Offline
#14 24. 2. 2010 17:14
- 22
- Nette guru

- Místo: Brno
- Registrovaný: 18. 1. 2010
- Příspěvky: 215
Re: Signál z checkBoxu?
//<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í…
Offline
#15 24. 2. 2010 17:19
- toka
- Člen

- Místo: Kostelec nad Orlicí
- Registrovaný: 5. 8. 2009
- Příspěvky: 173
Re: Signál z checkBoxu?
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.
Offline
#16 24. 2. 2010 17:44
- 22
- Nette guru

- Místo: Brno
- Registrovaný: 18. 1. 2010
- Příspěvky: 215
Re: Signál z checkBoxu?
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)
Offline


