Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Autosuggest - pytania
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
deha21
Witam,
Używam skryptu do sugerowania treści wyszukiwania (jak np. w google) http://bassistance.de/jquery-plugins/jquer...n-autocomplete/
W związku z tym mam pytanie czy dałoby się przekształcić ten skrypt w taki sposób aby sugerowane wyrazy czytał z bazy danych (bo z bazy chyba szybciej niż z pliku?) w czasie rzeczywistym. Nie wiem jak to sprawdzić ale wydaje mi się że skrypt pobiera wszystkie dane a potem z nich wybiera te które pasują do zapytania. Chodzi o to, żeby skrypt pobierał dopiero odpowiednie dane np. wyrazy zaczynające się na "Bar..." w trakcie pisania. A może się mylę, może już to robi?

Kolejne pytanie. Wątpie żeby komuś się chciało zagłębiać w temat ale może da się zrobić tak żeby wpisując np. "Jarosław" wyskoczyła podpowiedź "Jarosław Kaczyński", a wpisując "Kaczyński" żeby wyskoczyła podpowiedź "Jarosław Kaczynski". Bo teraz jest tak że jeśli nie zrobię podpowiedzi "Kaczyński Jarosław" to przy wpisywaniu "Jarosław Kaczynski" do wyszukiwarki, żadna sugestia się nie pojawi. Może jest jakiś inny skrypt który takie coś obsługuje?

I ostatnie pytanie, troszkę z innej beczki. jQuery robi wersje minimalistyczną swojego skryptu. Też chciałbym takie coś zrobić ze swoim skryptem. Chodzi o to, że trzeba chyba wymazać wszystkie niepotrzebne entery, taby i spacje. Jakiś jakiś skrypt albo program który to umożliwi? I jak użyć jQuery gzipa? Bo wersja minimalistyczna którą mam waży 69kb a potrzebuję czegoś co lżejszego a zdaje się że gzip mi to zapewni, przez co strona będzie ładowała się jeszcze szybciej. Mam racje?

Pozdrawiam
szalik
Poczytaj komentarze na stronie którą podałeś...
Ad.3 http://javascriptcompressor.com/
thek
A więc odczyt z bazy danych a z poliku to niemal żadna różnica. Po prostu zmieniasz mu źródło danych i nic więcej. Jak? To proste smile.gif
Tworzysz przykładowo plik autocomplete.php i w jego treści wrzucasz:
  1. $q = strtolower($_GET["q"]);
  2. if (!$q) return;
  3. //tu jeszcze walidacja danych
  4. $rezultat = mysql_query('SELECT kolumna1, kolumna2 FROM tabela WHERE pole LIKE \'%'.$q.'%\' ORDER BY pole ASC');
  5. while( $wiersz = mysql_fetch_array($rezultat) ) {
  6. echo $wiersz['kolumna1'].'|'.$wiersz['kolumna2']."\n";
  7. }

A w skrypcie tylko sobie to obrabiasz czymś w stylu:
[js]$("#bazowe_pole").autocomplete("autocomplete.php", { matchContains: true, minChars: 1, selectFirst: false, delay: 200 }).result(function(event, data) {
$("#jakis_id").val( data[0] );
$("#jakis_inny_id").val( data[1] );
});[/js]Co jak widzisz uzupełnia danymi nie tylko główny, ale także może dodatkowe pola wedle tego co sobie z bazy wytargałeś.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.