Autor Zpráva
Vareee
Profil
Dobrý deň,

mám situáciu, kde v tabuľke je cca 50 000 záznamov a potreboval by som z toho vygenerovať zoznam s možnosťou checkboxu na zaškrtnutie.. To samozrejme nie je problém, problém je skôr to že ten dotaz je neskutočne pomalý.

Rýchlosť dotazu viem vyriešiť stránkovaním, ale potom "pokulháva" užívateľská funkcionalita formuláru. Jednou z mojich hlavných požiadaviek je aby sa ten formulár dal poslať naraz, tj. odškrtnem niečo na prvej strane, potom na druhej, na siedmej a na záver to odošlem celé.

Pre výpis som skúšal dve alternatívy..
1. jQuery plug in DataTables www.datatables.net/
2. klasické stránkovanie bez Ajaxu

V prvom prípade bola doba načítavania stále príliš dlhá (keďže stále tahá všetky dáta a až potom stránkuje), v druhom prípade sa zase nedalo prekliknúť na ďalšiu stranu a označovať dáta..

Pri klasickom stránkovaní bez Ajaxu by riešením mohlo byť
1. ukladanie zakliknutých dát do dočasnej (alebo aj štandardnej) mysql tabuľky, ktoré by sa previedlo v momente kliknutia na ďalšiu stránku
2. ukladanie okliknutých veci napr. do SESSION, ktoré by sa previedlo v momente kliknutia na ďalšiu stránku

Otázka je či sú to vhodné riešenie? resp. Neviete poradiť nejaký iný rozumnejší spôsob ako na to?

Ďakujem za každý námet riešenia.
aDAm
Profil
a je nutné na jeden šup upravovat 50tis+ záznamů? Jaká je pravděpodobnost že všech těch 50tis budeš upravovat? DataTables mají několik řežimů práce, buď se rovnou při načtení stránky natáhne obsah a zbytek se dotahuje při requestu na požádání, nebo si to natáhnou při načtení ale jen vybraný úsek a nebo to natáhnou celé a uloží to do paměti. Poslední varianta je ale u takto velkého seznamu nepoužitelná.....

Proč tedy nejít směrem postupné editace jednotlivých záznamů? Pokud to teda chceš mít nějak v tabulce a dělat inline editing.
Tori
Profil
Vareee:
Při takovém množství záznamů bych spíš při přechodu na další stránku rovnou aktualizovala DB. A kromě stránkování bych přidala nějaké vyhledávání, filtrování - neumím si představit hledat jen očima deset záznamů mezi 50k.
Jinak byl opravdu pomalý ten dotaz anebo složení a vykreslení stránky?
Vareee
Profil
aDAm:
a je nutné na jeden šup upravovat 50tis+ záznamů? Jaká je pravděpodobnost že všech těch 50tis budeš upravovat?
Proč tedy nejít směrem postupné editace jednotlivých záznamů?

Mám databázu 50 000 firiem, a potrebujem s nimi robiť hromadne nejaké úkony. Napr. 500 firiem chcem zaradiť do kategórie "IT", následne cca. 1000 chcem zotriediť do Automobilový priemysel..

Otvárať každú firmu a zadávať k nejak jednu položku sa mi teda vôbec nechce, samozrejme je treba chápať že sa nejedná o jednu funkciu ktorú takto hromadne chcem robiť.

DataTables mají několik řežimů práce, buď se rovnou při načtení stránky natáhne obsah a zbytek se dotahuje při requestu na požádání, nebo si to natáhnou při načtení ale jen vybraný úsek a nebo to natáhnou celé a uloží to do paměti.

hm, mám už dlhodobo v mojej aplikácií implementovanú pomerne oklieštenú verziu kde také niečo nastaviť nejde, viem je to moja chyba ale nebol dôvod aktualizovať.. ak by to ale vyriešilo tento problém určite o tom budem premýšľať, otázka je či to naozaj problém vyrieši.

Tori:
Při takovém množství záznamů bych spíš při přechodu na další stránku rovnou aktualizovala DB.
Osobne som nad tým tiež rozmýšlaľ, aj tu je ale viac otázok ako riešení..

Aby som teda upresnil, to čo chcem dosiahnuť je dosť podobné funkcionalite phpmyadmina (v zmysle tých hromadných ikoniek dole, napr na mazanie).

PHPmyadmin funguje tak že máte prvých 30 záznamov, tie si môžete označovať, zrušiť označenie a následne vyberiete funkciu ktorú s tými vybranými riadkami môžete robiť.

Ja chcem aby to fungovalo tak že, vyberiem s prvých 30 záznamov, následne s ďalších 30 záznamov atd, následne vyberiem nástroj na zmazanie, na presunutie do inej kategórie a pod., keď to potvrdím všetkých zvolených užívateľov (na ľubovoľnej strane) zmaže, presnue atd.

Jinak byl opravdu pomalý ten dotaz anebo složení a vykreslení stránky?
Benchmark test nad databázov je 117 sekúnd, cez prehliadač 141. Svoju rolu zohráva to že v tej tabuľke je dosť stĺpcov (65) a tiež to že je umiestnená na zahraničnom servery
aDAm
Profil
Udělat to hromadně nad tisíci záznamy je imho nesmysl. Sice by tento postup co jsi popsal:

"Ja chcem aby to fungovalo tak že, vyberiem s prvých 30 záznamov, následne s ďalších 30 záznamov atd, následne vyberiem nástroj na zmazanie, na presunutie do inej kategórie a pod., keď to potvrdím všetkých zvolených užívateľov (na ľubovoľnej strane) zmaže, presnue atd."

dá realizovat pomocí datatables ale těch 50tis řádku v tabulce je zabijárna na prohlížeč. Takovéto věci se řeší filtrem, vytáhneš z db jen ty záznamy s kterými budeš tu operaci provádět a pak vybereš co chceš provést.
Vareee
Profil
aDAm:
Takovéto věci se řeší filtrem, vytáhneš z db jen ty záznamy s kterými budeš tu operaci provádět a pak vybereš co chceš provést.
Aký konkrétny filter máte namysli? Filter podľa mojich skúseností lze použít jedine ak májú tie záznamy niečo spoločné na základe čoho to budete filtrovať.

Mám firmu
A
B
C
D
E
F
G
H
I
J
K
L
M

Chcete zadať že firma A, C, H, I patrí do kategórie IT. Akým spôsobom by ste to filtroval, aby ste ich tam mohol zatriediť? Samozrejem, musí to byť univerzálne..
aDAm
Profil
No tak by mě teda zajímalo jak chcete procháze 50tis záznamů a vybrat ty záznamy A C H a I kdy každý z nich bude na xté stránce. Návhr takovéto logiky mi příjde šptaný a pro obsluhu vnáší poměrně velkou pravděpodobnost chyby.
Vareee
Profil
aDAm:
No tak by mě teda zajímalo jak chcete procháze 50tis záznamů a vybrat ty záznamy A C H a I kdy každý z nich bude na xté stránce.
Pozeráte sa na to ako programátor, skúste si to otočiť s pohľadu administratívneho zamestnanca ktorý ma prekontrolvať zatriedenie týchto firiem do kategórie.

Otvoríte si zoznam firiem, priamo vo výpise vidíte Názov firmy, oblasť podnikania (teda kategóriu), web, kontakt, a sú tam možnosti vstúpiť do detailu firmy.
Čo je efektívnejšie, označiť si všetky firmy a následne ich presunúť všetky naraz do kategórie IT, alebo každú jednu firmu z editovať, uložiť a vrátiť sa do zoznamu firiem.

Zastávam názor, že prográtor má programovať systém tak aby sa práca užívateľovi uľahčil, nie aby nadbytočným klikaním prácu prirábal..
Tori
Profil
Vareee:
Ja chcem aby to fungovalo tak že, vyberiem s prvých 30 záznamov, následne s ďalších 30 záznamov atd, následne vyberiem nástroj na zmazanie, na presunutie do inej kategórie a pod., keď to potvrdím všetkých zvolených užívateľov (na ľubovoľnej strane) zmaže, presnue atd.
Nástroj může zůstat předvolený z předchozí stránky. Potom bude postup: označím všechny, vyberu nástroj, kliknu na "Provést a zobrazit dalších 30", označím všechny (nástroj zůstává od minula), možná změním cílovou kategorii, kliknu na "Provést".

Filtrování/vyhledávání tam, uznávám, velmi použít nejde. Možná kdyby se vědělo, že např. prvních 80 záznamů je z jednoho importu a má se přesunout do stejné kategorie, tak by pomohl volitelný počet záznamů na stránku. Nebo by šlo procházet/opravovat záznamy po jednotlivých kategoriích, s tím, že v seznamu kategorií mi budou přibývat fajfky že "v pořádku, zkontrolované". Při takovém množství bych asi ocenila nějaký vizuální indikátor, kolik roboty mi ještě zbývá.

Čo je efektívnejšie, označiť si všetky firmy a následne ich presunúť všetky naraz do kategórie IT, alebo každú jednu firmu z editovať, uložiť a vrátiť sa do zoznamu firiem.
Když už u těch firem jsou zadané kategorie předem - máte od klienta informaci, jak asi často je potřeba něco opravovat? Bude to fakt takhle hromadně po desítkách, nebo spíš jednotlivě? Nešlo by použít něco jako "vyber a označ všechny z kategorie X, ty dva záznamy co jsou správně odznač, a ostatní (označené) přesuň do kategorie Y"?
Vareee
Profil
Tori:
Když už u těch firem jsou zadané kategorie předem - máte od klienta informaci

Najväčším problémom je že napr. kategórie zadané momentálne vôbec nie sú, jedná sa o doplňujúcu požiadavku zo strany nadriadeného (nie klienta, jedná sa o internú evidenčnú aplikáciu medzinárodnej firmy). Takisto tento postup vymyslel nadriadený. Ako často sa to bude používať je v princípe dosť ťažké určiť, podľa môjho názoru to využijú na začiatku pri radení do kategórií a potom už iba výnimočne. Pre mňa, zamestnanca, ktorý má toto vymyslieť je to ale v princípe nepodstatné..

Snažím sa vymyslieť spôsob, ktorý bude univerzálny (aby ak si zmyslia niečo podobné pri niečom inom, som bol schopný použiť tento istý prístup), funkčné a aby som s tým nezabil týždeň, osobne patrím medzi programátorom ktorým p. Vrána hovorí mazaný a líný :) a tiež v podstate súhlasím s tým že z užívateľského hľadiska to je efektívnejšie.

Čo takto?
1. Označím firmy
2. Pri prekliknutí na dalšiu stranu, uložím idčka firiem do pomocnej tabuľky
3. Označujem firmy na dalšej strane (ak prekliknem tak ide späť na krok 2.)
4. Pri výbere funkcionality doplní ajaxom do pomocnej tabuľky čo sa má vlastne robiť
5. Po odoslaní, natiahne dáta s pomocnej tabuľky a zo zmenanmi ich uloží do riadnej
6. Vyprázdni sa pomocná tabuľka (ak by sa jednalo len o dočasnú tabuľku tak to riešiť v podstate ani nemusím)
aDAm
Profil
a co takhle inline editace? pokud měním jednu věc co je ve výpisu nemusím nutně otvírat nějaký detail kde provedu editaci.
Jinak na problém se nedívám z pohledu programátora ale uživatele a určitě bych skákal 20m vysoko kdybych měl celý den čumět na titěrná písmenka a hledat nějaké firmy které přiřadím do kategorie a to ještě tak že budu prvně klikat a označovat a po 10ti minutách pak kliknu na změnu a jak to tak bývá během označování příjde kolega, prohodíme par vět, pak si skočím pro kafe atd...mezitím uplyne session, systém mě odlogne a poletí monitor oknem ven ;)

takže za mě, veškerou akci bych řešil buď jak píše @Tori, tj označím na stránce a hned spustím akci která změny uloží a nebo to dám do inline editace, kde bude nějaký select a po změně hodnoty se prostě pošle request co to uloží. Nač si to komplikovat pomocnýma tabulkama atd.
Tori
Profil
Vareee:
napr. kategórie zadané momentálne vôbec nie sú, [...] podľa môjho názoru to využijú na začiatku pri radení do kategórií a potom už iba výnimočne
To vypadá jako dva různé požadavky (= přeci jen možnost filtrování): 1. najít všechny nezařazené firmy a přiřadit jim kategorie, a 2. zobrazit všechny firmy z vybrané kategorie a zkontrolovat, jestli tam patří.

Jinak nejsem ani proti inline editaci, když si to představím. Asi pokud by na jedné stránce víc než polovinu záznamů patřila do stejné kategorie, tak je označím všechny a hromadně přesunu. Ale kdyby měl jít každý záznam jinam, tak mi zas bude víc vyhovovat postup "kliknu na pole kategorie, ukáže se <select> (nebo našeptávač?), vyberu, odkliknu že OK a řádek zmizí z výpisu." (A co nejvíc bych používala/umožnila ovládání klávesnicí.)
Vareee
Profil
aDAm:
a co takhle inline editace?
inline editácia je tiež možnosť, zaoberal som sa ňou úplne na začiatku problém okrem toho čomu sa budem venovať nižšie vidím vo variabilite.. Na checkboxový systém môžem napojiť akúkoľvek funkcionalitu, nie som si istý či aj na inline editovanie.

Jinak na problém se nedívám z pohledu programátora ale uživatele a určitě bych skákal 20m vysoko kdybych měl celý den čumět na titěrná písmenka a hledat nějaké firmy které přiřadím do kategorie a to ještě tak že budu prvně klikat a označovat a po 10ti minutách pak kliknu na změnu a jak to tak bývá během označování příjde kolega, prohodíme par vět, pak si skočím pro kafe atd...mezitím uplyne session, systém mě odlogne a poletí monitor oknem ven ;)

To je úhol pohľadu, môj šéf by vám zase povedal že brigádnika plateného hodinovou sadzbou, ktorý sa počas rozrobenej práce len tak z ničoho nič rozhodne odísť na kafe, kopne do pozadia ;).

Tori:
To vypadá jako dva různé požadavky (= přeci jen možnost filtrování): 1. najít všechny nezařazené firmy a přiřadit jim kategorie, a 2. zobrazit všechny firmy z vybrané kategorie a zkontrolovat, jestli tam patří.

Nie tak celkom, nepotrebujem dať všetky nezaradené firmy do jednej univerzálnej kategórie. Chcem aby každá firma bola v nejakej kategórii (podnikateľskej oblasti) a na to mi žiadny filter proste nepomôže, pretože tam fyzicky nikde nemám zadané firma A robí IT.

Preto sme sa rozhodli že najmeme 5 brigádnikov, ktorý dostanú prístup k aplikácií kde je mimo ine aj zoznam firiem (presný počet 51 339) - Slovenské, České, Nemecké, Rakúske, Maďarské, Belgické a Francúzske. V tom výpise vidia základne informácie, ktoré o tej firme vieme + je tam možnosť zobrazenia karty, kde sú nejaké ďalšie položky (mimo iné prečo vlastne tá firma v našej databáze je), možnosť na editáciu firmy, pridanie niečoho k tej firme...

Späť.. V tom základom výpise sú z tohoto pohľadu najdôležitejšie info a to Názov, Kategória (momentálne je prázdna úplne všade, okrem nejakých testovacích zmien), web. Ten výpis môže využívať ajax alebo nemusí, je to čiste na mne (obydve varianty sú funkčné) a je stránkovaný, dokonca ak sa použije ajaxová verzia je k dispozícií aj možnosť filtrovania na základe textu.

Takže brigádnik Ferko dostane na starosť vytriediť IT firmy. Vidí že firma A, nemá žiadnu kategóriu, takže overí čím sa firma A zaoberá buď vdaka stránke uvedenej v systéme, alebo vďaka výpisu z ORSR, ZRSR etc a tak si tú firmu označí, prejde na firmu B overí a označí, c overí a označí keď sa chce ísť vycikať vyberie kategóriu (to že kategórií je veľa nemusím zdôraznovať že?) a potvrdí. Všetky označené firmy skočia do kategórie it.

Pri inline editovaní, vyberie firmu, zvolí kategórie, vyberie firmu zvolí kategóriu ak takto vyberie 100 firiem na jednej stránke tak 100x bude bojovať z kategóriami. Áno, môže to ovládať klávesnicou, ale koľko ľudí to v praxi reálne používa..


poznámka: nevymýšlal som to ja, je to konkrétna požiadavka. A z určitého pohľadu tomu rozumiem
aDAm
Profil
Vareee:
V inline editaci hledáš problémy kde nejsou. Si představ že bude listovat výpis po 20 či 50ti záznamech a z toho mu bude do te kategorie IT spadat max jedna na té jedné stránce. Tak bude muset udělat klik na označení, pak vybrat kategorii a pak zavolat akci....nebo snad chceš aby ten člověk še řádek po řádku?

A jak bude ten člověk vědět kam ta firma patří? Do jaké kategorie? Bude mít nějaký seznam koho kam zařadit či musí kliknout na nějaký další odkaz a podívat se na její web či hledat v rejstříku? Pokud by si to info měl teda ještě dohledávat tak je tebou navrhované řešení imho špatné. V tomto případě bych jej nechal listovat po jednotlivých "kartách" kde uvidí detaily a bude pro něj snadnější se rozhodnout kam ji zařadit.

Sice chcete z brigádníků udělat otroky, ale na druhou stranu se na ten problém musíte dívat tak že ty data jsou pro vás a brigádník vás může mít v paži. Chvíli to bude klikat, otvírat pořádně kontrolovat a pak přijde na to že to jde hromadně a bude střílet od boku.

Takže to co sem psal výše bych tedy ještě doplnil:
- Hromadně zařadit firmy do kategorie
- Inline editace kategorie
- Procházení "karet" kde se zařazuje do kategorie

a určitě bych se nesnažil pracovat s celým objemem dat, je to dle mě nesmysl něco cachovat, dělat temporary tabulky atd.

Taky bych se zamyslel nad tim aby ty přiřazené firmy z toho seznamu mizly - filtr zařazeno/nezařazeno pokud na tom pojede více lidí atd.
Vareee
Profil
aDAm:
z toho mu bude do te kategorie IT spadat max jedna na té jedné stránce
Označí jednu, preklikne na ďalšiu stranu (to čo označil na predošlej strane sa uchová), označuje ďalšie a ďalšie a na záver alebo (niekedy v priebehu) raz vyberie kategóriu a potvrdí, that's all hotovo

A jak bude ten člověk vědět kam ta firma patří?
To je v kompetencií, človeka ktorý priradzuje kategóriu.

Sice chcete z brigádníků udělat otroky
To sú silné slová,
add 1. nikto ho nenútil prísť na pohovor
add 2. je to len jedna zo súčastí jeho práce, bude to robiť ja neviem pár hodín denne, zbytok pracovnej doby bude riešiť iné veci
add 3. je uzrozumený s pracovnou náplňou
add 4. viete ako to funguje v spoločnostiach ako Amazon, alebo v iných veľkých spoločnostiach? Úlohou mojej priateľky v Amazone, je kontrolovať správnosť zadaných informácií ktoré si tam firmy zadávajú, inak povedné má priradených 200 klientov a každý deň, celý deň kontroluje či údaje ktoré tam firma zadala sedia (či už sa jedná o údaje firmy, produktov firmy a pod.) a pritom sa jedná o dobre platenú pozíciu, ktorej titul znie tak že by ste si myslel že riadi minimálne NASA..

Chvíli to bude klikat, otvírat pořádně kontrolovat a pak přijde na to že to jde hromadně a bude střílet od boku.
to je problém zodpovednosti zamestnanca, rovnako ako pri mojom riešení aj pri vašom riešení sa na to môže "vykašlať" a hodnoty len strielať..

Veď si to skúste sám.. Príklad môjho riešenia (bez stránkovania) a Vášeho riešenia. Príklady sú síce zjednodušené (nebolo toľko času sa s tým hrajkať) ale len tak cvične si skúste priradiť kategóriu Suriname (miesto kategórií sú tam štáty) pre firmy A, B, C, J, 1, 3, 7 a povedzte čo vám príde pohodlnejšie?


samozrejme uvítam viac názorov, ktorá s funkčností sa Vám vidí ekeftívnejšia s pohľadu používateľa (nie toho kto má vymyslieť riešenie)
aDAm
Profil
Vareee:
druhé řešení je imho rychlejší...stačí mačkat TAB a S. V prvním řešení se musím pekelně soustředit abych se trefil na čtvereček....ja svoje již řekl, očividně zbytečně, timto zde v diskuzi končím.
Vareee
Profil
aDAm:
ja svoje již řekl, očividně zbytečně, timto zde v diskuzi končím.
Ja vám váš názor neberiem a ďakujem Vám za ochotu a čas ktorý ste tejto diskusiu venoval. Na druhú stranu vy vôbec neakceptujete fakt že niesom pánom situácie. Takže ešte raz, nevymýšlal som to ja, je to konkrétna požiadavka nadriadeného, ktorý ma môže prepustiť ak neplním svoje pracovné povinnosti. Ja osobne nemám príliš náladu sa s idiotom (nadriadeným) dohadovať a dookola mu vysvetlovať že nie toto nie je ideálne riešenie (takýchto diskusií sme už "zviedli" desiatky), chce aby to fungovalo takto, preto neriešim spôsob ako sa tomu vyhnúť alebo to ako to vyriešiť inak ale spôsob ako to čo najvhodnejšie vyriešiť podľa jeho požiadavky (predstavy).

Osobne by som to riešil tiež úplne inak, preto som sa zaujímal aj o vaše riešenia.

stačí mačkat TAB a S
áno ale iba za predpokladu že
1. Viete pracovať s klávesnicou
2. Suriname je jediný záznam na S. Otázka je ako jednoduché to bude, ak do zoznamu pridám ďalčích x záznamov na S, SU, SUR? Testnite si to isté ale s Belgickom.
aDAm
Profil
áno ale iba za predpokladu že
1. Viete pracovať s klávesnicou
2. Suriname je jediný záznam na S. Otázka je ako jednoduché to bude, ak do zoznamu pridám ďalčích x záznamov na S, SU, SUR? Testnite si to isté ale z Belgickom.

bod 1 je snad předpoklad vubec se k práci s pc dostat ne?
bod 2 jen se zvýší počet úderů do klávesnice....

Řešení vám přikázal šéf, ok co tedy po nás chcete, jak to máte udělat máte přikázáno a zřejmě se šéfem neumíte diskutovat na dané téma, ale to je vaše věc. Chtěl jste zprácovávat x tis záznamů na jeden šup což je dle mého názoru neefektivní. Pokud to musí být mermomocí klikací na čtverečky tak proč to ukladat do paměti? prostě zakliknout, provést akci a jít dál.
Vareee
Profil
aDAm:
Nie, prikázené mám ako to má vo výsledku fungovať. Spôsob akým to budem "obsluhovať" je na mne, otázka teda bola ako to čo som opisoval v príspevku [#1] a príspevku [#4] čo najvhodnejšie vyriešiť.

Či je čiastkové ukladanie do databázy alebo do session pri prekliknutí na ďalšiu stranu (relatívne) dobré riešenie tejto konkrétnej situácie, prípadne či vás nenapáda lepšie riešenie ktoré ale zohladňuje požiadavku..

zřejmě se šéfem neumíte diskutovat na dané téma
To je možné, po 11 rokoch spoluprácu už človek vie o čom má zmysel diskutovať a o čom nie. Hlavným problémom je že nadriadený nie je ani trochu programátorsky gramotný.. ale to je odbočka, nechcem zájsť k téme ako je možné že na takej pozícií ktorá ovplyvňuje vývoj nejakého systému "sedí" človek čo tomu nerozumie.

je snad předpoklad vubec se k práci s pc dostat ne?
používanie tabulátora, nie je vôbec také samozrejmé ako si myslíte, poznám desiatky ľudí ktorý robia s pc a o funckií tabu nevedia

bod 2 jen se zvýší počet úderů do klávesnice....
no a sme pri tom 21 buchnutí do klávesnice vs 7 kliknutí a 3 buchnutia.. neviem pre vás ľahšie buchnutia tabom, pre niekoho kliknutie to je dosť subjektívne.
Vareee
Profil
no vzhľadom na to že prišiel čas tento problém riešiť, tak som to spravil tak že Ajaxom hneď po kliknutí na checkbox uložím do tabuľky oznaceneZaznamy idčko vybratého záznamu a až na záver sa zaoberám tým čo chce userko robiť a keď to všetko potvrdí a vykoná čo chce tabuľku prečistím od zbytočností.. funguje to spolahlivo a je to jednoduché a rýchlo sa loadujúce riešenie.
Amunak
Profil
Vareee:
Co děláš, když někdo něco zaškrtne a nakonec nic neprovede? Nemůžeš prostě provést akci až po zaškrtání a vybrání té akce? Pak je úplně jedno, zda použiješ ajax nebo něco jiného.
Vareee
Profil
Amunak:
Co děláš, když někdo něco zaškrtne a nakonec nic neprovede?
pomocnú tabuľku prečistujem vždy hneď keď užívateľ vyberie tento nástroj a keď s nástrojom prácu ukončí

Nemůžeš prostě provést akci až po zaškrtání a vybrání té akce? Pak je úplně jedno, zda použiješ ajax nebo něco jiného
Neviem nakoľko ste čítal celé vlákno ale nie je to v tomto prípade možné. Potreboval som docieliť aby sa dalo označiť x záznamov v stránkovanom zozname a to tak aby si označenie s predošlých stránok pamätal aj na stránke 10, 20 etc.. inak povedané všetko čo som označil predtým.

A to kedy užívateľ akciu vyberie už neovplivním ja, je to na nom má ich všetky (zatiaľ) dole v selecte pod 20 riadkami daného výpisu.
Amunak
Profil
Vareee:
Nečetl jsem všechno, četl jsem toho dost a váš přístup mi přijde nepraktický.

Pokud skutečně nejde využít jen nějaké filtrováním kde už se všechno vypíše na jednu stránku, máte hned několik dalších možností:
1. to, co děláte teď (a co považuji za podivné, nepraktické a pravděpodobně i pomalé)
2. ukládat zatržené položky do cookie (tedy jejich identifikátor nějak šikovně oddělený. Pokud počítáte s tím, že položek je zatržených hodně, bylo by třeba nějak šikovně zaznamenávat rozsahy aby ta cookie nebyla moc velká)
3. ukládat zatržené položky do local storage a pak je vytáhnout při odeslání formuláře
4. při přechodu na další stránku ve stránkování používat formulář, takže se checkboxy odešlou, a pak se v php přepracují do nějakého skrytého pole (pro další stránkování). Tento přístup vůbec nevyžaduje JS, a může proto být zajímavý
5. pro přechod na další stránku používat ajax (nebo nějak jinak "fyzicky nepřecházet" na další stránku) takže může být výběr uložený v JS proměnné nebo nějakém elementu

alternativní řešení:
6. vypisovat všechno na jednu stránku a umožnit šikovné filtrování (přinejmenším můžu použít hledání na stránce a firmy ručně najít a zatrhnout si je). Padesát tisíc řádků tabulky by neměl být problém. S filtrováním ještě snazší. (taky dobré řešení které nevyžaduje JS)
7. nejprve si vybrat akci, tu uložit třeba do session a pak jen klikáním na záznam u kterého chci změnu provést se změna prostě provede (pro rychlost by šel využít ajax; pro šetření počtu SQL dotazů to někde nějak cachovat a změny aplikovat až naráz)
8. vytvořit nějaký offline export-import systém pro tabulkový procesor kde se mi vyjede třeba jen seznam záznamů a odkazy na detail záznamu v administraci. Otevřu to v nějakém svižném tabulkovém editoru, odmažu řádky s nimiž nechci nic provádět, uložím to jako csv, nahraju na weba vyberu si jakou akci chci provést. Tohle by šlo rozšířit třeba i o provádění několik akcí naráz apod. Výhodou je že se na výběru dá pracovat i offline, změny se jen tak neztratí v hlubinách prohlížeče a navíc je to velmi svižné, protože nepotřebuji stránkovat. Nevýhodou je pak pochopitelně nutnost downloadu a uploadu. Pokud ale někdo prochází 50000 řádků, tohle by mohla být taky docela příjemná možnost jak si práci usnadnit.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0