Автозаполнение блока html на основе значений на сервере - PullRequest
1 голос
/ 03 ноября 2019

Это может быть очень нубский вопрос. Прямо сейчас у меня есть следующий блок автозаполнения

<script>
          var filename = src="{{ url_for('static', filename='cities.txt') }}"
          $.get(filename,function(data) {
            var cities = data.split('\n');
            $( "#autocomplete-1" ).autocomplete({
               source: cities
            });
         });
        </script>


<form class="form-inline my-2 my-lg-0" action="{{ url_for('fetch_vals' )}}" method="get">
            <label for="autocomplete-1"></label>
            <input id="autocomplete-1" class="form-control mr-sm-2" type="text" placeholder="{{box_text}}" name="cities">

            <button class="btn btn-secondary my-2 my-sm-0" type="submit">Go</button>
          </form>

Теперь, вместо чтения из cities.txt, я хочу автозаполнение на основе значений на сервере

Итак, на моем простом флеш-сервере, У меня есть конечная точка типа

@app.route('/cities')
def cities():
    cities = ['new york', 'portland']
    return jsonify(cities=cities)

вышеупомянутый возвращает json, как

{"cities": ['new york', 'portland']} 

При запросе на '/cities' Как я могу поменять это чтение из файла на чтение с сервера и синтаксический анализJSON. Спасибо

1 Ответ

2 голосов
/ 03 ноября 2019

Одним из решений является выдача AJAX-запроса от вашего клиентского кода, что-то вроде этого:

$.ajax({
      type: 'GET',
      url: "/cities",
      dataType: "json",
      success: function(data){
                 $( "#autocomplete-1" ).autocomplete({
                     source: data["cities"]
                 });
               }
    });

Подробнее об AJAX можно прочитать по здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...