![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 6 Dołączył: 23.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
wartosc nie chce sie przypisac do tablicy. przypisuje sie dla pierwszych dwoch wykonan ale potem juz nie chociaz warunek sie spelnia istnieje wartosc. chodzi o to ze kazde kolejne wpisanie litery powoduje jesli zgadza sie z wzorcem ucinanie o jeden i zpaisanie do tablicy.
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Rozwiń co chcesz tutaj uzyskać. Mały tip:
Pyt:"Potrzebuję zaciemniacza do kodu PHP" Odp: "Kod PHP jest wystarczająco zaciemniony" |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 6 Dołączył: 23.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jest pole tekstowe po wciesnieciu klawisza lacze sie poprzez ajaxa do pliku php i nastepnie z baza mysql i pobieram wszystkie rekordy zapisujac je do tablicy. skrypt wyszukuje wyrazow kontunuujacych czyli np. wpisze kom to pokaze mi jako popowiedz to co wpisalem plus puter. tablica wyglada tak:
(IMG:http://fotozrzut.pl/zdjecia/b26668ea2a.jpg) kazda kolejna litera powoduje utowrzenie nowego elementu z wyrazami ktore spelniaja warunek czyli sa kontunuacja. w dalszej czesci po usunieciu bede usuwal te elementy wiec nie powinno to za bardzo obciazac. problem jest taki, ze ten kod zadziala tylko jesli podam odpowiednik dla pierwsze elementu danego elmentu czyli w przykladzie bylaby to litera o i wygladalo by to tak jak powinno czyli: (IMG:http://fotozrzut.pl/zdjecia/56181b4989.jpg) niestety jesli wpisze juz litere inna niz wartosc pierwszego podelementu to sie nic nie wykonuje choc powinno. nie mam juz na to pomyslu. troche wiecej kodu.
edit..zmienna znak to wyraz wpisany do pola tekstowego Ten post edytował attimo 30.07.2010, 19:29:17 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Są dwa rozwiązania -
Pierwsze: wygenerowanie słownika w postaci drzewa (słowo klucz: uniwersalna struktura słownikowa) po stronie serwera i przesłanie go JSONem do przeglądarki oraz implementacja przeszukiwania tego drzewa w kodzie JS. To skomplikowane dla początkującego i nawet nie wiem czy mi by się udało. Po drugie ograniczeniem jest wielkość słownika - jest ok jak zmieści w kilkudziesięciu kilobajtach (przy kompresji nie powinno być tak źle, poza tym słownik może być w cache). Zaletą tego jest eliminacja zapytań do serwera (wszystko dzieje się po stronie klienta) Drugie prostsze : słownik w bazie danych (jak u ciebie) + zastosowanie operatora LIKE. Implementacja wyglądałaby tak:
Zalety są takie że odpada implementacja algorytmów przeszukiwania. Wadą jest konieczność odpytywania serwera - można temu zaradzić np. wprowadzając opóźnienie po evencie keyup (dzięki temu wiemy kiedy użytkownik skończy wpisywać frazę) Mam nadzieję że ogarniasz to co napisałem (IMG:style_emoticons/default/tongue.gif) . Ten post edytował everth 30.07.2010, 20:01:47 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 6 Dołączył: 23.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ja to zrobilem prosciej pobralem jeden raz wszystkie nazwy i potem operuje juz tylko na tablicy nie wykonuje ponownych zapytan wiec nie obciaza to bazy.
tylok jak tkos wpisuje od nowa to i tak sie wykonuje zapytanie ale mysle ze da sie to jakos obejsc sesja. nie nieszczyc jej na koncu tylko wyzerowac wartosci i nie bedzie konieczne ponowen zapytanie wiec w zasadzie zapyttanie wykona sie tylko przy pierwszym uruchomieniu wyszukiwarki. co do opoznienia to na pewno wprowadze to, ale to jak bedzie mi dzialac to co mam (IMG:style_emoticons/default/smile.gif) Ten post edytował attimo 30.07.2010, 20:14:21 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wczoraj miałem zagwozdkę gdy opisywałem ci metodę na słownik. Dziś udało mi się chyba doprowadzić skrypt do postaci działającej. Nie jestem programistą więc prezentowane rozwiązanie może być naiwne, proszę o wyrozumiałość bardziej 'rozumnych'. Skrypt składa się z dwóch części - jedna po stronie PHP przygotowuje słownik z przykładowej listy słów, koduje i wysyła JSONem. Druga jako obiekt JS pozwala ten słownik rozkodować, modyfikować, przeszukiwać. Testowane tylko na Chrome, więc na innych może nie działać.
Skrypt JS:
Oraz część w PHP
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 13:47 |