JavaScript-массив отображения в автозаполнении интерфейса Jquery UI

Я новичок в программировании PHP … Я хочу, чтобы отобразить массив в поле выбора. Массив, который я получаю при вызове веб-сервисов, является ассоциативным массивом …. называемым $ services.

Это мой текст автозаполнения ввода, где я хочу перечислить эти:

<input class="sel2" id="select_service" name="Enter keywords" type="text" value="search something" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = '';}" required="">

и вот сценарий перед телом.

<script>
$(function() {
var availableTags =  <?php echo json_encode($cars); ?>;
$( "#select_service" ).autocomplete({
source: availableTags
});
});
</script>

Все работает все хорошо. У меня странная проблема. Я определил 2 php-массива вверху и прежде чем отобразить текст автозаполнения … Я использую этот php-код для получения массива $ cars

<?php
foreach($services as $key => $value){
//echo '<option value="'.$key.'">'.$value.'</option>';
$cars[] = ''.$value;
}
?>

Что удивительно: значение заполняется в массиве … я могу отображать их в поле выбора тоже … могу печатать их … но оно не появляется в автозаполнении. Тем не менее, автозаполнение кода работает нормально, если я назначил какое-то жестко закодированное значение в цикле. Итак … проблема в том … фактические значения никогда не отображаются в автозаполнении.

ЧТО БОЛЬШЕ удивляет:

Текст автозаполнения только не отображает значение связанного массива …. даже отображая ключ. Вот как печатает массивы.

Array ( [0] => Exclusive - Special Offer!!! - [Special offer] U.S.A - T-Mobile Unlock via Device Unlock App - 1-3 Days [1] => Exclusive - Special Offer!!! - [Special offer] U.S.A - T-Mobile iPhone IMEI Cleaning Service (Clean Lost/Stolen/Blocked IMEI) - 1-7 Days [2] => Exclusive - Special Offer!!! - [Special offer] U.S.A - AT&T iPhone 3G 3GS 4 4S 5 5S 5C 6 6+ (Clean) - 0-48 Hours [3] => Exclusive - Special Offer!!! - [Special offer] U.S.A - AT&T iPhone 3G 3GS 4 4S 5 5S 5C 6 6+ (Clean) - Instant [4] => Exclusive - Special Offer!!! - [Special offer] U.S.A - AT&T iPhone 6S 6S+ (Clean) - Instant [5] => Exclusive - Special Offer!!! - [Special offer] U.S.A - AT&T iPhone 3G 3GS 4 4S 5 5S 5C 6 6+ [Only Active Line IMEIs] - 1-4 Days))

Похоже, что есть проблема с форматированием результата. Хорошо отображается в окне выбора … но не отображается в автозаполнении.

**

НАЙТИ ПРОБЛЕМУ … НО РЕШЕНИЕ

**
На самом деле все работает нормально … вот URL http://demo.eurekageeks.com/API/GetService.php
откуда я беру свой массив …. он работает для всех столбцов, но не отображает данные из Name и PriceGroupName. В чем может быть проблема.

1

Решение

Я проверил ссылку, которую вы предоставили. На самом деле существует проблема в строковом формате для строки с идентификатором 1114. Он содержит неправильный формат, и, следовательно, автозаполнение JQuery не может его загрузить. Попробуйте заполнить массив в цикле с проверкой

if($key != 1114){
$cars[] = ''.$value;
}

Это будет работать просто отлично. Вам следует связаться с разработчиком API или изменить его самостоятельно, если вы извлекаете его из своей базы данных.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]