Mám pocit, že se nechápe, že jsem to špatně vysvětlil, uvedu tedy ukázku s příkladem.
Mám toto: http://live.datatables.net/saxivebu/1/edit?…
1. Do instant search napíši "London"
2. Vrátí to dvě stránky 10+3 (celkem 13 nalezených záznamů).
3. Pro těchto 13 záznamů potřebuji tlačítko "do CSV".
Dá se to nějak?
Jak si moje amatérská hlava přestavuje, že to může fungovat:
A) Nějak z klienta (prohlížeče) dostat těch 13 záznamů převést do JSON, ten pak poslat nějak přes tlačítko nad tabulkou AJAXem zpět do PHP, který ho zpracuje, vytvořit z něj CSV na straně PHP už zvládám.
B) Nějak z klienta (prohlížeče) dostat těch 13 záznamů uložit do pole, to pole použít jako vstup pro javascript funkci generujCSV($pole), přes tlačítko v tabulce.
C) Odchytit nějak to klíčové slovo, které vepíšu do instant search, a poslat ajaxem jen to klíčové slovo funkci, terá bude mít neco jako SELECT * FROM zaznamy WHERE jmeno LIKE "%$searchkw%" OR city LIKE "%$searchkw%", což bude sloužit jako data pro generátor CSV, mělo by to fungovat stejně, ale jak to klíčové slovo přes javascript z té tabulky dostat. Možná přes input.change event by se upravovalo URL tlačíka "do CSV" na /csvexport.php?kw=<kw>, myslíte, že je to reálné?
@peter
1. Data z PHP vycucám do pole je k ničemu. Vznikly by dvě verze:
A) 1:1 data v PHP v poli
B) Tabulka přes JS odfiltruje jen některé záznamy a o ty jde, ne o všechny v tom poli v A)
2.Ano generuji z PHP do HTML tabulky, a ta HTML tabulka se poté přes JS filtruje. Do CSV potřebuji přímo ten odfiltrovaný výstup, který je vytvořen někde na pozadí v datatables.
Získat data z tabulky přes javascript a ty data poslat přes AJAX do PHP právě chci, jen nevím jak to udělat. TO je ale asi nerealizovatelné, protože tabulka má paginaci (stránkování), fungovalo by to jen pro první stránku, prvních 10 záznamů, další by to ignorovalo. Proto mi přijde logické to udělat přímo na straně klieta, a nevracet to nijak zpět do PHP.
Odešli filtry do PHP nechápu jak myslíš. Filtry jsou součástí datatables.
3. Ten tvůj psudokod bych asi nějak zvládl dát dohromady aby fungoval, ale podle mě to bude brát právě jen první stránku té tabulky.
@Peter Jo, asi jsem máslo, ale AJAX jsem už dohromady jednou dal, jen jsem přes něj neposílal žádná pole, jen spustil PHP funkci na smazání záznamu nebo co to bylo.
@kit Jo, asi se tomu říká přetěžov\ání, dělám to rád, jen proto, že neznám důvod proč to nedělat, když si umím v hlavě vybavit posloupnost kodu, šetří to paměť ne? :-)
@gna Ne nevyhovuje, funguje to úplně jinak. Bavíme se o doselekci přes instant search, když budu chtít vyselektovat všechny Londýny z example a bude jich tisíc, tak budu muset tisíckát kliknout a všechny je označit. Má to poslat celý obsah tabulky po odfiltrování záznamů přes instant search. Resp vlastně by to asi nějak šlo, kdyby se namísto označování ty záznamy poslaly všechny (celá již odselektovaná tabulka).
@kit Kdepak, to přece nebude fungovat, to pošle zpět do PHP 1:1 to stejné, co PHP poslalo klientovi. Nemělo by to přece žádný význam.