JavaScript — не в состоянии создать функцию автоматического предложения с динамическими данными

я использую этот плагин создать комбинацию автозаполнения и тега.
Мой код для поля ввода и связанный с ним скрипт

<input id="form-tags-4" name="tags-4" type="text" value="">
<script type="text/javascript">
$(function() {

$('#form-tags-4').tagsInput({
'autocomplete': {

source: [
'apple',
'banana',
'orange',
'pizza'
]
}
});
});
</script>

Он отлично работает со статическими данными, однако я хочу, чтобы вместо статических данных, которые хранятся в источнике, динамические данные базы данных должны сохраняться.

в настоящее время мои динамические данные находятся в $ normal_skill, формат которого выглядит следующим образом

Array
(
[0] => stdClass Object
(
[normal_skill] => HTML
)

[1] => stdClass Object
(
[normal_skill] => CSS
)

[2] => stdClass Object
(
[normal_skill] => Javascript
)
)

Я попытался собрать данные из normal_skill и поместить их в массив, как это

$items = array();
foreach($normal_skill as $n_skill) {
$items[] = $n_skill->normal_skill;
}

И вместо источника я назвал $ items, после замены источника на $ items перестала работать функция автозаполнения и тегов.

Для тестирования я печатал $ items, он показывал данные, но при замене на источник данных не было. Консоль также не показывает какой-либо конкретной ошибки.

Может кто-нибудь сказать, пожалуйста, как я могу заменить источник с моими данными, и я хотел бы, чтобы он также выполнял поиск по буквам. Например: — если я наберу «h», то слова, начинающиеся с h, должны вводиться автоматически, однако сейчас отображаются все слова, содержащие «h».

1

Решение

Вы пытались передать его в JavaScript с json_encode()?

<input id="form-tags-4" name="tags-4" type="text" value="">
<script type="text/javascript">
$(function() {

$('#form-tags-4').tagsInput({
'autocomplete': {
source: <?= json_encode($items) ?>
}
});
});
</script>

Если это удаленный источник.

$items = array();
foreach($normal_skill as $n_skill) {
$items[] = $n_skill->normal_skill;
}
exit(json_encode($items));

Затем в вашем javascript установите его в исходный файл:

<script type="text/javascript">
$(function() {

$('#form-tags-4').tagsInput({
'autocomplete': {
source: './tags.php'
}
});
});
</script>
0

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

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

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