javascript - 如何在jquery select2中获取项目

标签 javascript php jquery ajax jquery-select2

我想获取 processResults 函数中的值 (flight_no),因此当我选择航空公司名称时,航空公司名称中的代码必须填写为 (flight_no)

我尝试获取 processResults 函数中的 (flight_no),但我只获取 (airline_id)

$('#airlines').select2({
        allowClear: true,
        placeholder: 'Select Airlines',
        ajax: {
            dataType: 'json',
            type: 'POST',
            delay: 250,
            url: '{{route('search-airlines')}}',
            data:function(param){
                return{
                    airlines:param.term
                }
            },
            processResults: function(data, param){
                return {
                    results: data.map(function(item){
                        return { id: item.airlines_id,text: item.airlines_name, slug: item.flight_no} 
                    })
                }
            }
        }
    });

    $('#codeAirline').click(function () {
        $('#output').text($('#airlines').val());
    });


<div class="col-12 clearfix">
    <label for=""><p class="mb-0">Airlines</p></label>
    <select id="airlines" name="airlines" style="width: 100%;max-height: 100%; background-color: #e8e4e473;" required>
            <option value="">Select airlines</option>
    </select>
</div>
<div class="col-4">
    <div class="form-group">
        <select class="form-control" id="codeAirline" style="background-color:#dcdcdc;">
            <option id="output"></option>
        </select>
    </div>
</div>

我的json

{
    "DATA": [
        {
            "airlines_id": 1,
            "airlines_name": "Garuda Airlines",
            "status": "1",
            "flight_no": "GA"
        },
        {
            "airlines_id": 3,
            "airlines_name": "Sriwijaya Airlines",
            "status": "1",
            "flight_no": "SJ,SA"
        },
        {
            "airlines_id": 4,
            "airlines_name": "Susi Airlines",
            "status": "1",
            "flight_no": "SI"
        },
        {
            "airlines_id": 5,
            "airlines_name": "Multi Airlines",
            "status": "1",
            "flight_no": "MA,MU,MAS"
        },
   ]
}

最佳答案

change 事件添加到 ID 为 airlines 的选择元素中。当选择该值时,获取所选的airlines_id并在数组中查找,然后将找到的flight_no分配给id为codeAirline的select元素。

const input = {
  "DATA": [{
      "airlines_id": 1,
      "airlines_name": "Garuda Airlines",
      "status": "1",
      "flight_no": "GA"
    },
    {
      "airlines_id": 3,
      "airlines_name": "Sriwijaya Airlines",
      "status": "1",
      "flight_no": "SJ,SA"
    },
    {
      "airlines_id": 4,
      "airlines_name": "Susi Airlines",
      "status": "1",
      "flight_no": "SI"
    },
    {
      "airlines_id": 5,
      "airlines_name": "Multi Airlines",
      "status": "1",
      "flight_no": "MA,MU,MAS"
    },
  ]
};


const airlinesDropdown = $('#airlines');
const flightNum = $('#codeAirline');

input["DATA"].forEach(({
  airlines_id,
  airlines_name,
  flight_no
}) => {
  airlinesDropdown.append(`<option value="${airlines_id}">${airlines_name}</option>`);
  flightNum.append(`<option value="${flight_no}">${flight_no}</option>`);
});

$('#airlines').on('change', function() {
  const selectedAirline = $(this).val();
  const {
    flight_no
  } = input["DATA"].find(({
    airlines_id
  }) => airlines_id == +selectedAirline);
  console.log(flight_no);
  flightNum.val(flight_no);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="col-4">
  <select id="airlines" name="airlines" style="width: 100%;max-height: 100%; background-color: #e8e4e473;" required>
    <option value="">Select airlines</option>
  </select>
</div>
<br>
<div class="col-4">
  <select class="form-control" id="codeAirline" style="background-color:#dcdcdc;">
    <option value="">Select</option>
  </select>
</div>

关于javascript - 如何在jquery select2中获取项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56952129/

相关文章:

javascript - 如何从 jQuery 选择器生成的集合中提取数据?

javascript - 在angularjs中添加背景图片,css不起作用

javascript - Justified Gallery 中的悬停图标

php - 未初始化的字符串偏移量: 62

php - WordPress:update_post_meta 不工作

javascript - 我如何获取一个 JS 数组,它有一些元素也是数组,并使所有数组元素成为顶级元素

javascript - 在JS中选择数组值

javascript - Packery 附加方法添加三个项目。如何添加一项?

javascript - 设置范围后启动 svg 动画 - angularjs - svg

PHP oop 构建数组