Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
Autor | Správa |
---|
Registrovaný: 01.05.05 Príspevky: 13437 Témy: 1495 | 1495 Bydlisko: Bratislava |
Robim zoznamovaci portal a riesim vyber mesta, v databaze mam tabulku s krajmi, okresmi a mestami, tabulka s mestami obsahuje nieco cez 2900 slovenskych miest, dalo by sa to cez rolovacie menu zobrazit vsetko, ale kto bude hladat to svoje medzi 2900 mestami a obcami, takze najlepsim riesenim by bol asi nejaky naseptavac ze ak zacne pisat tak sa mu zobrazi nejaka ponuka. To by som mozno este ako tak nejak dokazal spravit, ale ide mi skor o to, ze nedovli ulozit navstevnikovi jeho nejake pseudo nazov, ale len to co je v databaze. Vedel by ma niekto nakopnut, ze ako na to?
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Tak ešte raz a pomaly, lebo minimálne ja som tú druhú časť nepochopil. Autocomplete nie je ťažké urobiť, aj jquery to má hotové http://jqueryui.com/autocomplete/A tá otázka je teda aká? Chceš len jednoducho validovať vstup len na tie, čo sú v db? A to je ťažké urobiť, alebo len nechápem?
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 01.05.05 Príspevky: 13437 Témy: 1495 | 1495 Bydlisko: Bratislava |
Ano chcem len validovat ten vstup do db, neviem asi som to zle nejak opisal mam to riesit akoze tak, ze dany vstup overim ci sa nachadza v tabulke a ak ano, tak sa ulozi, ak nie, tak holt smula a vypisem chybu? Neviem ci na to idem spravne a chcem to spravit co najjednoduchsie... // Spojený príspevok Ned 17.08.14 19:53Co sa tyka toho autocomplete, tak to na danej stranke kde chcem zadat teda to mesto, tak sa musi nacitat tak ci tak vsetkych cca 2900 miest? Asi tomu spravne chapem, ze? Mozno primitivne otazky, len mam teraz taku hlavu z toho vsetkeho ze neviem pomaly ani ako sa volam
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
K druhému dotazu - nie, keď užívateľ zadá prvé písmeno, ajaxom môžeš zobraziť trebárs len 10 prvých(najobľúbenejších, alebo inak vybratých) miest. Pchať všetky do kódu by bolo pekne divné...
K prvému - ja osobne by som to robil tak, že by som mal tabulku Mestá so štruktúrou (id_mesto, názov, ďalšie...) a do tabulky Užívatelia by som dával foreign key id_mesto. Po zadaní by som vybral id mesta podľa zadaného názvu a kľudne vložil. Ak select mesta vráti null, tak tam také mesto nie je. Vtedy môžeš dať trebárs varovanie "Máte na mysli mesto ...?". To by sa ale stalo len ak by to mesto napísal niekto celé a neklikol na autocomplete. Tak by si mohol mesto "uhádnuť" podľa posledného zobrazeného, alebo nejakým múdrym porovnaním.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 06.02.14 Prihlásený: 19.01.18 Príspevky: 443 Témy: 9 | 9 |
tak ako pise BX, cez autocomplete v callbacku zavolas cez ajax php funkciu, ktora ti vrati x miest. to si nastavis v danom php skripte ale to uz asi vies. www.promodeclic.fr take nieco ako mas to druhe pole "ou". a k prvemu ked pouzijes vyhladavanie v v mysql cez "like" to nebude stacit?
|
|
Registrovaný: 01.05.05 Príspevky: 13437 Témy: 1495 | 1495 Bydlisko: Bratislava |
BX presne tak mam navrhnute tie tabulky, bolo to sice pracne kedze som sa nedostal k ziadnemu hotovemu rieseniu, ok vdaka snad sa mi to podari spravit // Spojený príspevok Uto 19.08.14 20:17Tak som si to spojazdnil http://www.qlp.sk/vstup.php ale mam tam nejaky problem a netusim vobec v com moze byt, v databaze ked spravim like trebars: "SELECT mesta FROM mesta WHERE meno LIKE '%br%' LIMIT 10" tak mi zobrazi vsetko co obsahuje br, ale ked tento select spustim cez php tak mi nezobrazi nic, ak pouzijem len jedno pismeno, resp jeden znak cize aj medzeru, tak sa zobrazi vysledok, ale inac je prazdny... Kód: $sql = "SELECT meno FROM mesta WHERE meno LIKE '%$city%' LIMIT 10"; $result = mysqli_query($db, $sql); $data = array(); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { array_push($data, $row['name']); } echo json_encode($data); nevidim tam ziadnu nejaku chybu ze preco to spracuje len jeden znak a na viac sa vykasle, netusi niekto aby som sa mal coho chytit ze v com by mohol byt problem? // Spojený príspevok Uto 19.08.14 20:20Este ma napadlo, ze na slovensku mame obce ktore maju rovnaky nazov, ako toto vyriesit aby som vedel len podla mesta rozlisovat ci je dana obec v tom ci inom okrese? kedze v jednom okrese nemame viac miest s rovnakym nazvom....?
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS |
|
Registrovaný: 05.04.11 Príspevky: 1693 Témy: 50 | 50 Bydlisko: Žilina, Pop... |
Pre vyhľadávanie v textoch používam fulltextové vyhľadávanie s indexom. http://www.fi.muni.cz/~kripac/PV136/zur ... ntace.html Normálne s tým nemáš problém s takou malo tabuľkou. Žiaľ lepší príklad neviem nájsť. Princíp je vytvoriť index nad danými stĺpcami, samozrejme pokiaľ ho už vytvorený máš tak nemusíš, a potom je príklad vyhľadávania asi takýto : Kód: SELECT * FROM tabulka WHERE MATCH(sloupec1,sloupec2,sloupec3) AGAINST('slovo')
_________________ rMBP 13 2015 iPhone 7
|
|
Registrovaný: 01.05.05 Príspevky: 13437 Témy: 1495 | 1495 Bydlisko: Bratislava |
Takze spravil som chybu, mal som nastavene zle kodovanie a uz to funguje ako ma, uz sa len zamerat na to aby som vedel priradit nejaku obec z tych co mame na slovensku viac s tym istym nazvom do spravneho kraja...vobec ma nenapada ako na to
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS |
|
Registrovaný: 06.02.14 Prihlásený: 19.01.18 Príspevky: 443 Témy: 9 | 9 |
keby si to riesil pomocou psc? v tom pripade by si mal unikatne mesto. inak nie je riesene aj psc podla kraja pod ktore spadaju? ak ano tak by si to mal o to lahsie
|
|
Registrovaný: 01.05.05 Príspevky: 13437 Témy: 1495 | 1495 Bydlisko: Bratislava |
to asi nie, mozno idem na to vsetko uplne blbo a slo by to jednoduchsie, len ma nenapada akym inym sposobom ulozit registrovanemu jeho kraj, okres a mesto a podla toho potom aj vyhladavat, mozno sa to da aj inac....no nakoniec som to spravil takto http://www.qlp.sk/vstup.php lebo fakt netusim ako cez ten naseptavac preposlat aj id kraja a okresu
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS |
|
Registrovaný: 03.04.08 Prihlásený: 10.12.19 Príspevky: 4667 Témy: 37 | 37 Bydlisko: Trnava |
Fuuuha usability a ux, nie moc dobre riesenie pre uzivatela. Uzivatel by ti mal poskytnut mesto ty uz musis doriesit ostatne. Nemusis mu ukladat staci si ulozit nejake id mesta k jeho menu a z dalsej tabulky prirady kraj, okres. Daj mu iba jeden field s autocomplete, na nazov mesta a nepovolis mu potrvdenie pokial nevyberie z moznosti. Ak to chces mat dobre nezabudni na okamzitu spatnu vazbu a ak to chces mat este lepsie dovol mu chyby s tym ze mu das potom hlasku v zmysle "mali ste namysli" a zaklikne spravne mesto... Snaz sa ho nutit vyplnit co najmenej veci. + nemusa to byt select boxy, mozes pracovat s inymi elementami ktore aj krajsie nastylujes.
_________________ Hmmm .... Hrošíček ... [Homer] |
|
Registrovaný: 06.02.14 Prihlásený: 19.01.18 Príspevky: 443 Témy: 9 | 9 | |
Registrovaný: 01.05.05 Príspevky: 13437 Témy: 1495 | 1495 Bydlisko: Bratislava |
necham to tak ako som to spravil, tak aspon nemusim osetrovat zle zadane vstupy, toto ma mohlo napadnut na zaciatku, ze ako vobec riesit toto, ale nepredpokladal som ze tu budeme mat celkom dost obci s tym istym nazvom a nechce sa mi prechadzat vsetko a nejak to ani menit, mohol by som k tym mestam pridat do nazvu v zatvorke okres trebars, no uvidim, necham si to v zalohe
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS |
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
Chcel som ti napísať, že by asi bolo rozumné, aby sa tam vyberal kraj, okres a až potom mesto (pretože, ako si už zistil, názvy miest/obcí sa môžu opakovať). Každopádne by bolo rozumné, aby sa, v prípade, že má viac miest rovnaký názov, zobrazoval aj okres, inak ľudia môžu omylom vybrať názov, ktorý nechcú (napr. kvôli preklepu a podobnému názvu).
|
|
Registrovaný: 01.05.05 Príspevky: 13437 Témy: 1495 | 1495 Bydlisko: Bratislava |
No preto som to spravil tak, lebo ak by som uvadzal pri zadavani napriklad cez ten naseptavac aj okres tak by to asi bolo uz moc dlhe, takto to asi bude najlepsie, netusim ako inac to spravit efektivnejsie, ako som pisal vyssie tak ten naseptavac by bol este lepsi, ale to by som musel ku vsetkym opakovanym nazvom pridat este ja neviem trebars do zatvorky skratku okresu trebars aby sa to dalo rozlisit, ale to sa mi popravde nechce, dost hodin som stravil len nad tym aby som to pridal do databazy a ved to aj tak nebude kazdy menit 20x za den, takze je to asi jedno...
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Pána beka, veď máš v db aj okresy aj kraje, tak to neni nič ťažké... Buď do autocomplete pridáš malým písmom okres (ten stačí), alebo pri potvrdení - pri tom výbere id mesta podľa názvu - si vyberieš id a COUNT. Ak bude COUNT vyšší ako jedna, tak zobrazíš nejaký výber "Ktoré mesto máte na mysli?" a podľa toho vložíš. To sa ale nebude stávať často, takže pohoda...
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
|