2015-09-25 5 views
0

Я использую typeahead для поля автозаполнения. Когда я использую опцию remote like explaint здесь: https://blog.twitter.com/2013/twitter-typeaheadjs-you-autocomplete-me Он показывает все записи, а не подмножество, которое он должен показывать. Вот код JS:Typeahead 0.9.3 автозаполнение пульта не работает должным образом

<script type="text/javascript"> 
jQuery(document).ready(function(){ 
    jQuery('#palettenNummerEinlagerung').typeahead({ 
    name: 'nummer', 
    remote:'http://192.168.0.108/paletten/nummer_eingelagert' 
    }); 
}); 
</script> 

И действие на стороне сервера для JSon которым следует RECIVED удаленно:

public function getPalettennummerEingelagert(){ 
    $result=\DB::table('paletten') 
    ->leftJoin('einlagerungen', function ($join) { 
     $join->on('paletten.id', '=', 'einlagerungen.palette_id'); 
    }) 
    ->whereNotNull('einlagerungen.palette_id') 
    ->whereNull('einlagerungen.entahmedatum') 
    ->where('nummer', 'LIKE', '%'.\Input::get('q').'%') 
    ->select('nummer') 
    ->get(); 
    $returnArr=array(); 
    for ($i=0;$i<count($result);$i++) 
    { 
      $returnArr[]=''.$result[$i]->nummer.''; 
    } 
    return json_encode($returnArr); 
} 

ответ

1

Попробуйте изменить remote к prefetch:

prefetch:'http://192.168.0.108/paletten/nummer_eingelagert' 

Как описано в this GitHub typeahead.js issue:

Подумав об этом, я понял, что это должно быть Ответственность удаленных api для возврата отфильтрованных результатов, а не typeahead. Поскольку я использовал статический json datasource, мой возвращенный результат был таким же каждый раз, для которого следует использовать предварительную выборку. Итак закрытие этого вопроса.

Смежные вопросы