Autor Zpráva
T-fon
Profil
Ahoj, mám vlastní tabulku, kde je volba počtu položek (které u sebe mají checkbox) na stránce (klasicky vše, 10,20,...).
K tomu tlačítko Vybrat vše s JS funkcí (zkráceně):
var checkboxes = table.find('td.checker input:checkbox');
checkboxes.prop('checked', true);
Což mi vybere všechny položky na stránce.
Jde pomocí JS udělat, aby se po kliku na nějaké tlačítko vybraly úplně všechny položky? Tzn. nejprve se vybralo "vše" (to mám takto) $('select').val('vše').trigger('change'); ) a následně po refreshi tabulky se provedlo zaškrtnutí checkboxů?
Kajman
Profil
Ten refresh tabulky je asynchronní, nebo v čem je háček?
T-fon
Profil
Ano, data tam jdou AJAXem.
Ono je to možná prkotina, ale já fakt nevim jak na to. V JS(jQuery) nejsem moc zběhlej a googlim a zkoušim všechno možný, ale furt nic.
Kajman
Profil
Funkci navěšenou na změnu selectu můžete rozšířit např. o parametr, kde je možnost předat funkci. Tu pak po zpracování dat spustíte, pokud je ten paramert typu funkce. Chtěnou funkci předáte v poli dalších parametrů v metodě trigger. Při živé ukázce na kod.djpw.cz by to šlo názorněji.
T-fon
Profil
S tím parametrem v trigger() jsem měl právě už taky pár pokusů...
Nevím jak přesně nasimulovat tahání dat z databáze do kod.djpw.cz, ale něco zkusím vytvořit. Zatim dík.
Kajman
Profil
Ajaxem se dá tahat statické html uložené také na kod.djpw.cz.

Nebo alespoň sem dejte podstatný kód (označení všech checkboxů, událost při změně selectu, volání události triggerem), pro nástřel nemusí být živý.
T-fon
Profil
Já si myslim, že to komplikuje to, že událost při změně selectu je v jiný části aplikace. Jinak by se to řešilo v success metodě ajaxu, že?
Jinak prakticky vše je už v první příspěvku, celý je to nějak takhle:
$('button').click(function() {
  var table = $('table'); //teď ten kod nemám u sebe, ale tady nějaké zjištění rodičovské tabulky
  var checkboxes = table.find('td.checker input:checkbox');
  checkboxes.prop('checked', true);
}
A to je vše, plně funkční. A ten trigger je taky v první příspěvku, s tim, že teda simuluje kliknutí na volbu "vše", to se v pořádku provede (ale někde v jiné části aplikace) a dál už nevím, jak označit aktuálně zobrazené checkboxy...
Kajman
Profil
Bez kódu Vám bude muset stačit ta obecná rada.
T-fon
Profil
Tak pro názornost živé kódy:
Toto je tabulka s tlačítkem "Vybrat vše". Je to jen pro ukázku, není tam stránkování a data se netahají z databáze. Vše je OK.

A já bych chtěl docílit toho, že by se po kliknutí na tlačítko "Vybrat vše" natáhly z databáze všechny data (třeba 50 řádků) a označily se. Napadlo mě pomocí triggeru simulovat kliknutí na Select a výběr možnosti "vše". Trigger funguje, spustí nějaký AJAX v jiné části aplikace, a zobrazí se nová tabulka (a nový DOM), takže ta zakomentovaná část se nemůže už vykonat:
Ukázka
Trigger nemá žádný callback, takže můj dotaz je, jestli neexistuje nějaká možnost, jak toto provést, aniž by se musela upravit AJAXová funkce, která obsluhuje načítání dat do tabulky.
Kajman
Profil
Ale stále jste neposlal kód, který obsluhuje ajax. Nejsem si jistý, ale bez jeho úpravy (podpora vlastního callbacku či vrácení indetifikátoru volání ajaxu) to možná v javascriptu nepůjde. Také můžete tu událost na selectu odbindovat a nabindovat si vlastní.

Pokud ten kód nelze zveřejnit nebo upravit a server vrací sestavené html včetně checkboxů, tak si můžete při požadavku na všechny položky checkbox nastavit na zatržený už při generování html.
T-fon
Profil
No právě ten AJAXový kód upravovat nemůžu, ani ho neznám.
Při požadavku na všechny položky zatržený checkboxy předem být nemůžou, až při kliknutí na tlačítko.
Každopádně díky za pomoc, ujasnil jsem si, že v tomhle případě je to nelogický požadavek a musí se vybrání všech položek udělat ve dvou krocích.
Keeehi
Profil
T-fon:
No právě ten AJAXový kód upravovat nemůžu, ani ho neznám.
To jsi asi špatně rozuměl. Kajman nepotřebuje znát jak je ten ajax uvnitř naimplementovaný. To si ostatně může v případě potřeby najít sám v jQuery knihovně. On chce vidět, jak tu funkci $.ajax voláš. Což ti v tvé ukázce chybí. A jestli máš problém s
Nevím jak přesně nasimulovat tahání dat z databáze do kod.djpw.cz
tak se na to vykašli a jen tam přidej ten kód, i když tam bude mít špatnou url. Když někam napíšeš jak vypadá odpověď serveru tak my už si to upravíme.
T-fon
Profil
Nechme to být. Asi si opravdu nerozumíme, ale já opravdu tu část aplikace, která obsluhuje výběr počtu položek, stránkování apod neznám. A nemůžu do ní zasahovat. Pokud vím, tak tam někdo použil tento plugin + asi tento. Ale já mám k dispozici jen hotové sestavené html, se kterým pracuju.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0