Всем доброго здоровья! Сделала "живой поиск" с использованием виджета catcomplete, как описано вот здесь: https://jqueryui.com/autocomplete/#categories. Все почти получилось, только вместо названий категорий пишет undefined и все выбранные из БД тайтлы из двух таблиц вперемешку. Подскажите, кто знает, как это исправить. Спасибо заранее.
Сайт на CakePHP, если это важно.
1. puncake - 20 Июня, 2016 - 15:53:48 - перейти к сообщению
2. Viper - 20 Июня, 2016 - 17:44:26 - перейти к сообщению
Код где?
3. puncake - 20 Июня, 2016 - 20:07:16 - перейти к сообщению
Viper пишет:
Код где?
CODE (javascript):
скопировать код в буфер обмена
скопировать код в буфер обмена
- <script>
- $.widget( "custom.catcomplete", $.ui.autocomplete, {
- _create: function() {
- this._super();
- this.widget().menu( "option", "items", "> :not(.ui-autocomplete-category)" );
- },
- _renderMenu: function( ul, items ) {
- var that = this,
- currentCategory = "";
- $.each( items, function( index, item ) {
- var li;
- if ( item.category != currentCategory ) {
- ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
- currentCategory = item.category;
- }
- li = that._renderItemData( ul, item );
- if ( item.category ) {
- li.attr( "aria-label", item.category + " : " + item.label );
- }
- });
- }
- });
- </script>
- $( "#search" ).catcomplete({
- source: path + '/article/search/',
- minLength: 1,
- select: function(event, ui){
- window.location = path + item.category + ui.item.value;
- }
- });
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- class ArticlesController extends AppController{
- public function search(){
- $result_search = $this->search_autocomplete();
- $this->search_simple($search);
- }
- }
- public function search_autocomplete(){
- $search = $_GET['term'];
- 'limit' => 20
- ));
- foreach($search_res as $k => $v){
- }
- return $data;
- }
- }
Я не совсем понимаю логику скрипта. Несмотря на то, что в search_autocomplete() прописана выборка только через модель Article, а значит из таблицы articles, выбираются также названия из таблицы recipes. Это хорошо, как раз то, что нужно. Ноя не понимаю, как так получается.