Меню автозаполнения jQuery не заполняется с помощью Flask - PullRequest
0 голосов
/ 18 октября 2018

Я уже несколько дней переворачиваю таблицы и очень надеюсь, что кто-нибудь может помочь.

У меня есть простая веб-форма 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)

Что мне не хватает?!

Следующие сообщения, похоже, связаны, но предложения не решают моюпроблема:

...