я использую этот плагин создать комбинацию автозаполнения и тега.
Мой код для поля ввода и связанный с ним скрипт
<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».
Вы пытались передать его в 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>
Других решений пока нет …