Autor Zpráva
majkelju
Profil *
Ahoj, chtěl bych, aby mi vyhledávání v DataTables našlo české znaky i bez jejich zadání....např. když napíšu "krizovatka", aby mi to vyhledalo "křižovatka". Momentálně, když to takhle zadám, tak mi to nalezne prázdnou množinu. Na stránkách datatables.net jsem na tohle téma nic nenašel. Už jste to někdo někdy řešil?
Majkelju
Profil
Ještě pro upřesnění - Když napíšu "křižovatka", tak mi to "křižovatka" najde...jde mi především o líné uživatele, kteří nejsou zvyklí psát s diakritikou.
_es
Profil
majkelju:
Najjednoduchšie, a s najrýchlejším hľadaním, bude uloženie textu v dvoch verziách - s diakritikou aj bez diakritiky. Vyhľadávať budeš vo verzii bez diakritiky.
peta
Profil
Klidne si je nazvy treba linymi nebo hloupymi, ale, co kdyz chci najit vsechny moznosti? S diakritikou i bez ni? Co, kdyz se treba jmeno v cizim jazyce pise bez diakritiky a u nas s diakritikou a ja nevim, jak to mas zrovna ve sve databazi ulozene ty?

Viz es, udelas kopii bez diakritiky, z vyhledavaneho slova diakritiku odstranis a vyhledavas ve verzi bez diakritiky.
Sql databaze nemaji problem vyhledavat bez diakritiky a neni treba nic dal programovat.

Pak je tu moznost vyhledavat vsechny mozne kombinace pro kazde pismenko s diakritikou treba pomoci regularniho vyrazu
mašinka a dům
m[aá][šs][ií][nň]k[aá] [aá] [dď][uúů]m
Majkelju
Profil
To znamená, pokud mám třeba 10 tabulek zvlášť na různých stránkách webu a u každé mám vyhledávání, tak pro každou vytvořit její kopii a projít texty a z nich postupně odstranit diakritiku? Jestli to takhle chápu dobře, tak 1) Není to těžkopádné řešení, mít kvůli obyčejnému vyhledávání desítky tabulek v db? 2) Neexistuje nějaký způsob, jak tu diakritiku odstranit automaticky? Ruční přepisování by mi zabralo dny, ne-li týdny, vzhledem k velikosti db. Ono jinak tenhle problém jsem u klasického PHP vyhledávání vyřešil pomocí COLLATE v SQL dotazu...ale do toho vyhledávání v jQuery dataTables nevidím, to se v podstatě dá jen povolit/zakázat a prostě vůbec nevím :)
_es
Profil
Majkelju:
Není to těžkopádné řešení, mít kvůli obyčejnému vyhledávání desítky tabulek v db?
Pokiaľ chceš, aby vyhľadávanie bolo rýchle, tak to asi inak nejde.

Neexistuje nějaký způsob, jak tu diakritiku odstranit automaticky?
Asi existuje, skús pohľadať, možno to už niekto riešil. Text s odstránenou diakritikou budeš kopírovať do ďalšej tabuľky.
Str4wberry
Profil
Co takhle mít skrytý sloupec bez diakritiky?

Jinak ideální by bylo hledat nejprve klasicky a až při nenalezení udělat z hledaného textu regulární výraz s českými alternativami a vyhledat ten. Výše uvedené řešení ale bude zřejmě implementačně jednodušší.
peta
Profil
"odstranit automaticky"
Chces snad tvrdit, ze jako velky webar neumis ani naspat program, script, sql prikaz pro odstraneni diakritiky?
JS http://peter-mlich.wz.cz/web/js/prx/diakritika3.htm
JS http://peter-mlich.wz.cz/web/js/prx/diakritika4.htm
PHP google = php odtraneni diakritiky
MYSQL google = mysql odtraneni diakritiky

"vyřešil pomocí COLLATE v SQL dotazu...ale do toho vyhledávání v jQuery dataTables nevidím"
Chces snad tvrdit, ze neumis ani upravit script tak, aby delal, co ty chces? Prostudovat ho a tak? Chces, abychom to udelali za tebe a zadarmo? Vzdyt jsi ani nedal kod programu. Zkousel jsi vubec napsat autorovi toho scriptu nebo googlovat reseni?

"Ruční přepisování by mi zabralo dny, ne-li týdny, vzhledem k velikosti db."
Jak jako rucni prepisovani? Jeden kratky sql prikaz, ktery ten sloupec vytvori a predpokladam tak max 2 minuty casu na jeho provedeni. Navic to neni nutne, protoze sql umi vyhledavat bez diakritiky, staci mu jen poslat spravny sql dotaz, tj. poeditovat ten tvuj kod tak, aby mu ho poslal. Pripadne muzes zplacat ten regularni vyraz z kazdeho vyhledavaciho slova.

A mozna jeste dva odkazy:
google = mysql vyhledavani bez diakritiky
Majkelju
Profil
Str4wberry:
Ten skrytý sloupec vypadá zajímavě:)
peta:
Nikde jsem nenapsal, že jsem "velký webař", naopak jsem pořád ještě začátečník a holt v něčem vidím třeba zbytečně velký problém, narozdíl od vás ;) Nepotřebuju, abyste mi napsali skript, ale potřebuju nasměrovat, kde začít a jak to provést. Nerozčiluj se hned :) Co se týče úpravy skriptu, ten opravdu nevím, jak upravit, když vypadá takhle (proto jsem si říkal, že je zbytečné to sem uvádět)
<script>
    var oTable;
    $(document).ready(function(){
        oTable = $('#tabulka_iz_zatrideni').dataTable({
            "bJQueryUI": true,
            "sDom": '<"H"f>rtS<"F"i>',
            "sScrollY": "420px",  // vertikalni scroll
            "bFilter": true,      // zakazuje vyhledavani - search box
            "bAutoWidth": false,  
            "bPaginate": false,   //zakazuje vyber stranek
            "fnInitComplete": function () {
                <?
                if($_SESSION['url'] != "00"){
                    $_SESSION['selection'] = 0;
                }
                echo "this.fnSettings().oScroller.fnScrollToRow(".$_SESSION['selection'].");";
                ?>                
            },
            "aoColumns": [         // zakazuje sorting v danych sloupcich
                { "sClass": "stred", "bSortable": false, "sWidth": "30px" },
                { "sClass": "stred", "bSortable": false, "sWidth": "30px" },
                { "sType": "natural", "sWidth": "70px" },
                { "sType": "czech" },
                { "sType": "czech", "sWidth": "40px" }
            ]
        }); 
    }); 
</script>
Kdyby to byl třeba sql dotaz nebo něco, kde je pěkně vidět "dovnitř" řádek po řádku, tak na to přijdu. Ale co dělat s "bFilter": true, to netuším. Za odkazy děkuju, mrknu na to.

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: