首页 > 解决方案 > 异步 HTTP 请求和引导多选

问题描述

我今天大部分时间都被困在一个问题上。我正在使用 js 来制作一个从数据库填充的动态表。作为该表的一部分,我使用的是bootstrap-multiselect在几列中制作用于过滤的下拉菜单。我正在我的 javascript 中进行异步调用,以从我的数据库中获取下拉列表的值,它可以获取我正在寻找的值。但似乎该元素的响应和生成是在多选脚本被触发之后发生的。据我了解,我不能推迟脚本,因为它不引用外部文件,而且我不确定如何将生成多选元素的脚本放入生成表格的脚本中。我已经将其缩小为异步请求/服务器响应时间的问题,因为问题是间歇性的,并且每次都会使用选项填充选择,

SCRIPT IN HTML
<script src = "js/shows.js"></script>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
<script type="text/javascript" src="js/bootstrap-multiselect.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $('#selectBand').multiselect();
        $('#selectVenue').multiselect();
      });
</script>
JAVASCRIPT FOR POPULATING TABLE (abridged js/shows.js)

function loadFilter(filter){
var table = document.getElementById('dataTable');
  var req = new XMLHttpRequest();
  if (filter == 'Band'){
    req.open('GET', 'myserver/getBands', true);
      req.addEventListener('load', function(){
    if (req.status >= 200 && req.status < 400){
    var bandFilter = document.getElementById('selectBand');
    var data = JSON.parse(req.responseText);
    for (i in data.rows){
      var option = document.createElement('option');
      option.value=Object.values(data.rows[i]);
      option.innerHTML=Object.values(data.rows[i]);
      bandFilter.appendChild(option);
      // console.log(data);
    }
  }
  })
  req.send(null);
}

你们中的任何人对如何让这些单独的脚本在正确的时间执行有什么建议吗?我把我的 js 砍了一段时间,以为我可以用一堆回调和异步函数来修复它,但总是以同样的问题结束。谢谢!

标签: javascripthtmlasynchronousbootstrap-4xmlhttprequest

解决方案


推荐阅读