Я уже несколько дней переворачиваю таблицы и очень надеюсь, что кто-нибудь может помочь.
У меня есть простая веб-форма Bootstrap, которая берет текст freetype и добавляет записи в таблицу базы данных MySQL.Чтобы помочь пользователям избежать опечаток или дублирующих терминов для одной и той же вещи, я хотел бы внедрить плагин jQuery для автозаполнения , предлагающий записи, которые уже есть в таблице БД.
Использование app.logger.debug()
и console.log()
, я вижу, что вызов БД успешен и что я получаю существующие записи БД в массиве ["item1", "item2", ..]
на внешнем интерфейсе.
Проблема заключается в том, что при вводеПоле формы показывает только несколько пикселей меню автозаполнения, без содержимого.
Я использую Bootstrap stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css
и jQuery / jQuery UI code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css
, code.jquery.com/jquery-3.3.1.min.js
, code.jquery.com/ui/1.12.1/jquery-ui.min.js
JS:
$(":text").focus( function() {
var input_field = encodeURIComponent($( this ).attr('id'))
var dataString = 'input_field=' + input_field
$.getJSON('/availability_autosuggest'
, dataString
, function (data) {
console.log(input_field)
console.log(data)
$('#' + input_field).autocomplete({
minLength: 2
, source: data});
}
)
Настой:
from flask import Flask, render_template, request, jsonify
from flask_bootstrap import Bootstrap
@app.route('/availability_autosuggest', methods=['GET', 'POST'])
def availability_autosuggest():
db_entries = []
input_field = request.args.get('input_field')
# returns list of table entries ["item1", "item2", ..]
db_entries.append(DBOperations().query_table('table_name', column_name=input_field))
return jsonify(db_entries)
Что мне не хватает?!
Следующие сообщения, похоже, связаны, но предложения не решают моюпроблема: