Jump to content
  • 0

pole szukaj w innym miejscu


korni

Question

Witam, 

 

Chcę przenieść input z modułu "blok prostego wyszukiwania" , z funkcjonalnością ajaxa (jquery.autocomplete) do formularza kontaktowego.

 

O ile same pole szukaj przeniosłem i funkcję swoją spełnia, to niestety nie chce mi działać lista z podpowiedziami produktów

post-589568-0-88972600-1431350272_thumb.jpg

 

wyżej jest oczywiście poprawne wyświetlanie, a na dole wadliwe. Jakieś podpowiedzi mi wyświetla, ale nie zamienia na nazwy produktów.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

rozbudowałem formularz kontaktowy (contact-form) o kilkanaście nowych pół z zapisem do bazy. Jednym z pół jest nazwa produktu. O ile stworzenie selecta nie jest problemem, to jest to niewygodne dla klienta, w chwili gdyby musiał przewijać długą listę.

Pomysł padł na wykorzystanie pola "szukaj" z modułu "blocksearch:, ponieważ on ma genialne rozwiązanie podpowiedzi w locie w postaci nazw produktów, które to potem wpisują się w inputa. 
Uaktywniłem moduł, Do nagłówków strony dodają się wpisy jquery.autocomplete.js oraz jquery.autocomplete.css, a samo przeniesienie pola polegało na tym, że po prostu skopiowałem kod z modułu:

 

<div id="search_block_top">
  <form method="get" action="{$link->getPageLink('search')}" id="searchbox">
    <p>
      <label for="search_query_top"><!-- image on background --></label>
      <input type="hidden" name="controller" value="search" />
      <input type="hidden" name="orderby" value="position" />
      <input type="hidden" name="orderway" value="desc" />
      <input class="search_query" type="text" id="search_query_top" name="search_query" value="{if isset($smarty.get.search_query)}{$smarty.get.search_query|htmlentities:$ENT_QUOTES:'utf-8'|stripslashes}{/if}" />
      <input type="submit" name="submit_search" value="{l s='Search' mod='blocksearch'}" class="button" />
    </p>
  </form>
</div>

Pole "szukaj" samo w sobie spełnia funkcję, ponieważ wyszukuje produkty, ale nie nie chcą się wyświetlać właśnie te podpowiedzi z nazwami. Być może trzeba coś zmienić w autocoplete.js, ale nie mogę znaleźć co. Albo coś gdzieś indziej.

 

Edit: Zapomniałem dopisać, że silnik to 1.5.4.1
 

 

Edit 2: 
Chciałem jeszcze wykorzystać <datalist> zapętlając i podając jako wartość nazwę produktu. Problem w tym, że tylko FF potrafi poprawnie wyszukać wpisany ciąg znaków niezależnie, w którym miejscu w nazwie produktu by się znajdował. Opera i Chrome niestety porównuje tylko z pierwszymi znakami w nazwie produktu, zamiast przeszukać całą nazwę, więc ten pomysł też odpada :/

Edited by korni (see edit history)
Link to comment
Share on other sites

  • 0

wiesz co, z tym sobie już poradziłem. Zamiast przenosić sam kod z inputem, to stworzyłem nowego hooka w blocksearch, który jest podpięty teraz do  formularza kontaktowego. Podpowiedzi już ładnie działaja, wartość się wpisuje w input, z tym że jeszcze nie przekazuje do bazy.

 

Muszę zmienić id z domyślnego "search_query_block" na "produkt_1" (pod taką nazwą mam kolumny w tabeli), a najlepiej to na "produkt_{$l_prod}", gdzie l_prod jest licznikiem.

 

Tylko teraz nad czym innym się zastanawiam. Taka operacja pociągnie za sobą modyfikacje wszystkich plików w module oraz w jquery.autocomplete (?). Problem pojawi się jak będę chciał ten moduł jeszcze gdzieś indziej wykorzystać oraz czy czasem nie ma odniesień z innych elementów sklepu do pliku z autouzupełnianiem. Jeśli są, to sobie tylko pogorszę sprawę i czy w tym wypadku nie lepiej by było stworzyć nowego modułu.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...