Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wyszukiwarką dynamiczną
Forum PHP.pl > Forum > Po stronie przeglądarki
smok55453
Witam. mam na swojej stronie tabele. Taką:klik

Dodałem do niej wyszukiwarkę dynamiczną z tej strony: klik
Gdy wpiszę cokolwiek w wyszukiwarkę zaznaczę pola które chce wybrać to nie działa dalsza część strony po wciśnięciu przycisku. Dlaczego?
SpiritCode
Trudno poweidzieć gdzie masz błąd jeśli nie widać jak posklejałeś kod
smok55453
wyślę ci na priv kod
SpiritCode
Wyczerpał się limit PW.
W jaki sposób objawia się to nie działanie strony?
Forti
Przestań zakładać kolejne durne tematy kolego.

http://forum.php.pl/index.php?showtopic=238035&hl=
smok55453
Ale powiedz mi kolego dlaczego durne?

W innych działach nikt mi nie pomaga. W tym pomaga mi tylko SpiritCode , com i Turson, więcej nikomu nie chce się pofatygować i napisać. Ty mnie krytykujesz że zakładam durne tematy, a sam nie wiedziałbyś jak mi pomóc. Jak nie umiesz komuś pomóc to lepiej już nic nie pisz.



Edit.

Sory SpiritCode nie widziałem że dodałeś tutaj post. Jest tak: Użytkownik wchodzi sobie na stronę z przepisami. Załóżmy, że mam z 1000 przepisów i szukanie poprzez przesuwanie paska lub scrollem nie jest zbyt dobre. Więc dodałem wyszukiwarkę. Skrypt js musi być cały czas uruchomiony, ponieważ za każdym razem jak użytkownik wpisze jakąś literę w wyszukiwarkę to automatycznie skrypt dobiera wiersze tabeli w których jest dana litera lub słowo. Po wpisaniu tego wyświetlają się wiersze które użytkownik szukał. Zaznacza przepisy które mu są potrzebne wpisuje ile razy dany przepis będzie użyty i klika oblicz. I teraz właśnie ten przycisk oblicz nie działa. Tzn działa ale tylko wtedy jak użytkownik nie wprowadził żadnej litery w wyszukiwarkę i nie uruchomił skryptu.
Forti
Podałem Ci link z gotowym kodem i przykładami jak to wykonać. Turson zrobił to samo.

Ty odpisujesz w temacie - czekasz 30 minut i zakładasz kolejny z tym samym pytaniem. Zamiast usiąść i się nauczyć to czekać na gotowe rozwiązanie. Spoko - ja kiedyś też tak miałem, jednak zaoszczędze ci czasu i powiem, że nikt gotowca Ci tu nie da.

Pozdrawiam ;]



edit:

wyjaśnie Tobie jak działa to co ci podesłałem.

Tutaj masz link do zrzutu ekranu, jak widzisz, pobiera z 4 różnych tabel (newsy, artykuły, posty i tematy) i pokazuje wyniki ograniczone do ilości.

http://arturs.pl/upload/nt/wyszukiwarka.jpg

Tu jest kod jak to działa (ograniczyłem później do 3 tabel)

[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function () {
  2.  
  3. var posts = new Bloodhound({
  4. datumTokenizer: Bloodhound.tokenizers.obj.whitespace('text'),
  5. queryTokenizer: Bloodhound.tokenizers.whitespace,
  6. limit: 2,
  7. prefetch: {
  8. url: '/posts.json',
  9. filter: function (data) {
  10. return data;
  11. }
  12. },
  13. });
  14.  
  15. posts.initialize();
  16.  
  17. $('#multiple-datasets .typeahead').typeahead({
  18. highlight: true
  19. },
  20. {
  21. name: 'posts',
  22. displayKey: 'text',
  23. source: posts.ttAdapter(),
  24. templates: {
  25. header: '<div class="page-header"><h4><small>Posty</small></h4></div>',
  26. empty: 'brak wyników',
  27. suggestion: function (s) {
  28. return '<p>' + s.text + '</p>'
  29. }
  30. }
  31. })
  32.  
  33. });
[JAVASCRIPT] pobierz, plaintext


Teraz robisz tak:

robisz dodatkowy plik / routing, np. newsy.json (nie musi być .json - to tylko w celach czytelności), w który listujesz wyniki z bazy danych jako JSON. (json_decone i json_encode - funkcje w PHP do tego).

Na stronie robisz include z jquery.js, pod nim typeahead.js i pod nim to co napisałem wyżej (przerób na własne potrzeby zmieniając nazwe json i pól / tabel). Poczytaj o typeahead a do wieczora będziesz miał działający skrypt.

Możesz również dalej czekać aż ktoś Ci poda innego gotowca -,-



edit:

podam Ci jeszcze kod HTML na formularz, taki jaki ja mam (ostylowany wg. bootstrapa):

  1. <form id="search" class="form-horizontal" action="twój_plik_gdzie_wyswietlasz wynik" method="POST">
  2. <div class="input-group" id="multiple-datasets">
  3. <span class="input-group-btn"><button class="btn btn-default btn-typeahead" type="submit"><i class="fa fa-angle-double-right"></i></button></span>
  4. <input type="hidden" name="serialized" value="">
  5. <input type="text" class="form-control col-md-8 typeahead" placeholder="Szukaj...">
  6. </div>
  7. </form>


W input hide serialized automatycznie dodają się wybrane wartości w trakcie wyszukiwania, np. przeszukujesz newsy po treści to w to pole dodają się wszelkie wartości z json - te które dodasz z bazy, czyli np. id, data, tytuł, tresc, autor itp. etc. itd ;]

proste.. wystarczy że przeczytasz to ze zrozumieniem i poprubujesz odrobine sam. Tylko nie wracaj jak przez godzine Ci nie będzie wychodzić.
SpiritCode
Haha!
Forti się wkurzył ale nie mam nic do dodania do jego posta wink.gif
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.