Материализовать автозаполнение с идентификатором, данными из sqlite и проверкой - PullRequest
0 голосов
/ 06 августа 2020

Я создаю свое первое веб-приложение на основе Sinatra, в основном использую материализацию-степпер для моей формы и материализацию для остальной части интерфейса. У меня есть форма, принимающая пользователя 2 пользовательских ввода, каждый пользовательский ввод имеет автозаполнение. Данные для автозаполнения поступают прямо из моей базы данных. Я пытаюсь найти способ добавить функцию, в которой вводимые пользователем данные могут использоваться только, а форма может быть отправлена ​​только в том случае, если ввод поступает из данных автозаполнения предложения, и каким-то образом добавить идентификатор, чтобы я мог ссылаться на каждый результат.

Идентификатор необходим, потому что форма берет начало и пункт назначения аэропортов из моей базы данных и делает запрос на получение рейсов с этой информацией, если передаваемые данные недействительны, я не получу результатов. Позже мне нужно добавить функцию, в которой пользователь может добавить этот рейс, если он хочет иметь профиль, y для этого мне нужно сделать каждый рейс «отслеживаемым»

Это код, отвечающий за автозаполнение данных и инициализацию

//   document.addEventListener('DOMContentLoaded', function() {
   // initialize stepper
const flightStepper = document.querySelector('.stepper');
const stepper = new MStepper(flightStepper);
// initialize the autocomplete
const elems = document.querySelectorAll('.autocomplete');
M.Autocomplete.init(elems, {
   limit: 8,
   data: {
      // pulling all the airports from the database
   <%@airport.all.map do |airport|%>
      <% if airport.iata_code.split('-')[0].size > 3%>
      // "beautifying the autocomplete text for the user and verifying its length"
         "<%= airport.name%> ,<%=airport.iata_code.split('-')[0].chop %>": null,
         <% else%>
         "<%= airport.name%> ,<%=airport.iata_code.split('-')[0] %>": null,
         <%end%>
    <%end%>
    }});
</script>

Моя форма - основная c форма, принимает аэропорт отправления, пункт назначения и т. Д. c.

Спасибо всем, кто пытается мне помочь!

...