Я пытаюсь создать виджет автозаполнения jQuery UI с фреймворком.Flask AJAX Autocomplete
http://flask.pocoo.org/docs/patterns/jquery/
http://jqueryui.com/autocomplete/#remote
Это мой HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1//EN" "http://w3.org/TR/html4/strict.dtd">
<head>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>
<script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>
<script type=text/javascript>
$SCRIPT_ROOT = {{ request.script_root|tojson|safe }};
</script>
<style>
.ui-autocomplete-loading {
background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat;
}
</style>
<script type="text/javascript">
$(function() {
$("#university").autocomplete({
source: $.getJSON($SCRIPT_ROOT + "/_search_university",
{search: $('input[name="university"]').val()}),
minLength: 2,
});
});
</script>
</head>
<body>
<div class="ui-widget">
<label for="university">University: </label>
<input id="university", name="university" />
</div>
</body>
И это мой метод Настой:
@app.route('/_search_university')
def search_university():
search = request.args.get('search')
results = session.query(University).filter(name.like('%' + search + '%')).all()
return jsonify(results)
Я думаю, что я получил это право, но это Безразлично» похоже, работает. Как только я перезагружаю страницу, функция вызывается (даже без ввода и с minLength = 2), ищет университеты, но ничего не отображает (даже когда он нашел университеты).
После первого поиска (сразу после страницы), виджет прекращает отправку запросов на сервер, если при вводе более двух букв в поле.
Может ли кто-нибудь помочь мне здесь? Я просто пытаюсь получить самое основное использование виджета автозаполнения с помощью AJAX с помощью Flask.
вау спасибо! идеальный ответ! – arnoutaertgeerts
Единственная проблема, с которой я столкнулся сейчас, заключается в том, что серверная сторона больше не распознает мою переменную поиска. Я получаю ошибку, которую выполняет поиск = Нет? – arnoutaertgeerts
, если вы используете Chrome, откройте инструменты разработчика и перейдите на вкладку сети. Когда вы вводите что-то в текстовое поле, вы должны увидеть новые запросы. Проверьте URL-адрес запроса, чтобы убедиться, что он правильный – Dogoku