У меня проблема с автозаполнением jQuery.Я использую данные JSON, полученные из базы данных MySQL с помощью функции PHP.
$.ajax({
dataType: 'json',
async: false,
method: 'post',
success: function(data) {
test = data;
},
url: '<?php echo site_url('products/autocomplete/'); ?>'
});
Итак, мои данные JSON хранятся в переменной: 'test'.Это мой код автозаполнения:
$( "#prodname" ).autocomplete({
minLenght: 2,
source: test,
focus: function( event, ui ) {
$( "#prodname" ).val( ui.item.prodname );
return false;
},
select: function( event, ui ) {
$( "#prodname" ).val( ui.item.prodname );
$( "#uname" ).val( ui.item.uname );
$( "input[name=prodname_fk]" ).val( ui.item.id );
return false;
}
})
.data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.prodname + "</a>" )
.appendTo( ul );
};
Данные загружаются правильно и все, но поле автозаполнения не работает должным образом.Первый элемент моего JSON-объекта начинается с «b», поэтому только когда я нажимаю букву «b», появляется автозаполнение (предложения).
Как это исправить?Я думаю, возможно, потому что я использую async: false, но это единственный способ, которым я заставил его работать сначала.
Мне нужно автозаполнение в моем поле Product, поэтому, когда пользователь выбирает продукт, скрытыйПоле (prodname_fk) получает соответствующий идентификатор продукта.А поле uname (единица измерения) используется только для отображения.
Прилагаю картинку для справки.
Заранее спасибо.
