Korzystając z ui-autocomplete napisałem sobie wyszukiwarkę z podpowiadaniem, problem w tym, że na localhost działa, ale na serwerze produkcyjnym już nie(zero błędów w konsoli, request do php się wykonuje jednak response jest pusty, natomiast gdy tam print_r przed return w php zwraca poprawną tablicę wyników).
var cache = {}; var search = $("#search"); search.autocomplete({ minLength: 1, autoFocus: true, source: function(request,response){ var term = request.term; if(term in cache){ response(cache[term]); return; } $.getJSON("/pl/search/search",request,function(data){ cache[term] = data; response(data); }); }, select: function( event, ui ) { if(ui.item.value!='Brak rezultatów' && ui.item.value!='Keine Ergebnisse gefunden' && ui.item.value!='No result' && ui.item.value!='Найденные'){ $('#search').val(ui.item.value); $("input.buttonS").trigger("click"); } } });
public function searchAction(){ $this->view->disable(); $lang = parent::getTranslation(); $data = $this->request->get(); $req = $data['term']; $item = new \Models\Item\Item(); $items = $item->getItemByNameAndLang($req, $_SESSION['lang']); foreach($items as $it){ $ret[] = $it->getName($_SESSION['lang']); } $ret[] = $lang->_("nosearch"); } return json_encode($ret); }
Co robię nie tak?