Autor | Zpráva | ||
---|---|---|---|
Alois Marhoul Profil * |
#1 · Zasláno: 27. 7. 2007, 14:40:26
Ahoj
Rád bych na svých stránkách měl funkci našeptávače ve vyhledávacím okně. Našel jsem článek na Intervalu (http://interval.cz/clanky/google-suggest-aneb-naseptavac-s-xmlhttpreq uest/) jak to udělat pomocí google. já bych to ale chtěl postavit nad vlastní databázi. Nevíte o hotové funkci? |
||
MzM Profil |
#2 · Zasláno: 27. 7. 2007, 15:38:30 · Upravil/a: MzM
Tak je to AJAXovina, tak JS šlohni z googlu nebo jiného hotového a dodavatele dat si napíšeš, vcelku snadno, sám. Ne?
Jinak se bude dát na googlu někde něco hotového najít. |
||
peta Profil |
#3 · Zasláno: 27. 7. 2007, 15:46:12
Alois Marhoul
princip: - sledujes pocet pismen v inputu - jakmile presahne 3 pismenka, zavolas JS Ajaxem pozadavek na php soubor, ten se stahne na pozadi a zpracuje, pak zobrazi. moznosti zasilani dat: JS httpRequest / IFRAME.src / SCRIPT.src / IMG.src cookies / JavaApplet ... http://www.volny.cz/peter.mlich/www.htm#msub13 - ajax minichat http://www.volny.cz/peter.mlich/www.htm#mssub16 |
||
Alois Marhoul Profil * |
#4 · Zasláno: 27. 7. 2007, 15:57:23
Předpokládám, že kompletní HTML a JS se dá použít například z tohoto: http://interval.cz/clanky/google-suggest-aneb-naseptavac-s-xmlhttprequ est/
Jak by měl ale vypadat PHP skript? Doslova by měl vracet: sendRPCDone(frameElement, "interval", new Array( "interval international", "interval", "interval training", ...), new Array( "2,190,000 results", "17,100,000 results", "1,750,000 results", ...), new Array("")); A ještě jeden dotaz. Vyplatí se uvnitř skriptu data tahat přímo z DB nebo je mít někde mimo (v texťáku?) |
||
luka Profil * |
#5 · Zasláno: 27. 7. 2007, 16:34:05
|
||
peta Profil |
#6 · Zasláno: 28. 7. 2007, 09:34:01 · Upravil/a: peta
luka Ano, i to je reseni.
Ma to vsak tu chybu, ze pri kliku mimo select, select nezhasne a je treba vybrat jednu z moznosti. (ve FF) Alois Marhoul Je mozne vyhnout se Ajaxu takovou fintou. Zkombinujes priklad od Luka. Tam je to teda resene divne, pres Array, pouzil bych spise Object, ale slo by to :) Soubor countrycodes.js si udelas jako PHP script (header(charset=text/javascript) viz cz.php.net/header), ktery vygeneruje JS soubor. Tento JS soubor si pak nalinkujes normalne a pouzijes. Vyhoda je, ze se to bude pekne kesovat a pomoci PHP to muzes vypsat primo z databaze. Kdezto tamto reseni je ulozeny JS. Pak muzes pouzit ten ajax, ale zamezit mu, aby se volal pro kazde pismenko. Tam ti pak stoupa prenos. Opet muzes zkombinovat s Luka resenim. Muzes jej zavolat jen a prave tehdy, kdyz jsou pismenka 3. Ulozis si kompletni vysledek hledani (coz muze byt docela velke pole, ale tak pri 3 pismenkach snad uz ne ; kazdopadne na tom nesejde, protoze jej stejne budes chtit) a pridavanim pismenek si to budes tridit uz v JS. Co se tyce textaku, tak to je takto. Databaze je program spusteny v pameti. Do teto pameti. Servery maji obvykle specialni diskovou pamet, kde maji kompletni databazi. Tj, pozadavek na databazi je vyresen rychleji nez posilani souboru z disku. Je mozne nastavit databazi do souboru, pak je to stejne. A jeste se dela to, ze kompletni disk je v pameti, pak na tom nezalezi. Vsechno ma stejnou dobu cteni. Vyhoda textoveho souboru je jen v tom, ze tam mas kompletni data a nemusi se nic tridit, staci ho jen poslat. Viz reseni Luka, tam je to zas primo v JS. Jen bych pouzil objekt pole = { 'EN' : "Anglie", 'CZ' : "Cesko" } alert(pole['CZ']); |
||
peta Profil |
#7 · Zasláno: 28. 7. 2007, 17:27:47
jsem si s tim trosku hral, s verzi od Luke, tak se muzes inspirovat
http://peter-mlich.wz.cz/x/ww/js/JSpriklady.htm - Live Search |
||
Časová prodleva: 15 dní
|
|||
Alois Marhoul Profil * |
#8 · Zasláno: 12. 8. 2007, 12:46:28
Bohužel jste mi odpověděli trochu komplikovaně - nevyznám se v tom.
Když to vezmu čistě podle příkladu: http://interval.cz/clanky/google-suggest-aneb-naseptavac-s-xmlhttprequ est/ Jak by tady měl přesně vypadat skript vracející "našeptávané výsledky". |
||
Časová prodleva: 2 měsíce
|
|||
Schmutzka Profil |
#9 · Zasláno: 29. 9. 2007, 21:50:01
Sám jsem tento problém řešil a našel jsem následující (funguje v Opeře, FF a IE 7+):
http://www.eatdrinksleepmovabletype.com/tutorials/creating_a_google_su ggeststyle_search/ |
||
Časová prodleva: 17 let
|
0