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); 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 |
#2 · Zasláno: 12. 3. 2019, 14:31:30
Ten refresh tabulky je asynchronní, nebo v čem je háček?
|
||
T-fon Profil |
#3 · Zasláno: 12. 3. 2019, 14:55:22
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 |
#4 · Zasláno: 12. 3. 2019, 15:12:57
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 |
#5 · Zasláno: 12. 3. 2019, 15:21:49
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 |
#6 · Zasláno: 12. 3. 2019, 16:10:40
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 |
#7 · Zasláno: 12. 3. 2019, 16:57:23
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); } |
||
Kajman Profil |
#8 · Zasláno: 12. 3. 2019, 20:37:31
Bez kódu Vám bude muset stačit ta obecná rada.
|
||
T-fon Profil |
#9 · Zasláno: 13. 3. 2019, 08:04:57
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 |
#10 · Zasláno: 13. 3. 2019, 09:09:05
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 |
#11 · Zasláno: 13. 3. 2019, 09:20:14
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 |
#12 · Zasláno: 13. 3. 2019, 09:38:30
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 |
#13 · Zasláno: 13. 3. 2019, 09:54:58
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.
|
||
Časová prodleva: 5 let
|
0