bootstrap-выберите набор текста опции с помощью ajax

#javascript #html #ajax

#javascript #HTML #ajax

Вопрос:

У меня проблема с настройкой текста параметра из URL-адреса ajax.

Например, у меня есть URL-адрес http://localhost:5000/api/test/calgroups

В этом URL-адресе я вижу json список всех названий групп (МОЖЕТ БЫТЬ БОЛЬШЕ)

 ["tes1","tes2","tes3","tes4","tes5","tes6"]
 

но я не могу найти какую-либо информацию о том, как настроить, мой текст с функцией множественного выбора, который я хочу сделать таким

     <select class="selectpicker" name="MultiSelectGroup" id="ms1" multiple>
        <option id="gruop" >test1</option>
        <option id="gruop" >test2</option>
        <option id="gruop" >test3</option>
... (ant more)
    </select>
 

Мой код для получения текстового значения в поле предупреждения (его необязательно показывать, но, возможно, это поможет)

 $('.selectpicker').on('changed.bs.select', function () {

    selectedServices = $.map($(this).find("option:selected"), function(o) { return o["label"]; });
alert(selectedServices)


});
 

Итак, как настроить мои поля параметров со значением из ajax link? Любая помощь будет оценена по достоинству

Ответ №1:

Вы можете извлекать значения с помощью ajax и вставлять их в качестве параметров следующим образом:

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

 async function getValuesWithAjax() {
  return ["test1", "test2", "test3"];
}

$(function() {

  getValuesWithAjax().then(values => {
    values.forEach(value => {
      $(".selectpicker").append($("<option>")
        .val(value)
        .html(value)
      );
    });
  });


  $('.selectpicker').on('change', function() {
    selectedServices = $(this).val();
    alert(selectedServices)
  });
}); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class="selectpicker" name="MultiSelectGroup" id="ms1" multiple>
</select> 

Комментарии:

1. спасибо за помощь, но, может быть, можно обойтись без асинхронной функции? и у меня есть вопрос, тогда var url = '/api/v1/calgroups/' return url; это не работает для меня, может быть, вы знаете, почему?

2. Вы пытаетесь загрузить массив с URL-адреса, простой возврат URL-адреса не загружает данные. Вы должны извлечь данные с помощью XMLHttpRequest . Извлечение данных из внешнего ресурса всегда происходит асинхронно.

3. итак, в моем случае будет xhttp.open("GET", "/api/test/calgroups", true); return xhttp; , если у меня справа есть проблема со ссылкой, тогда ссылка /api/test/calgroups работает нормально, но запрос сделать это /api/test/calgroups/ , тогда ссылка не работает

4. Пожалуйста, создайте новый вопрос для обработки запросов API на HTML-странице.