使用select2.js将动态数据放在下拉列表中

时间:2018-01-10 05:57:11

标签: html json jquery-select2

我尝试使用select2.js中的ajax从我的文件中获取数据。我希望根据我在文本框中输入的值获取数据,并使用select2将该值附加到我的下拉列表中。我试过了,但它没有根据我的搜索关键字给出结果如何解决这些问题。

这是HTML上的输入框:

<input type="text" id="Address1" name="Address1" >

Javascript代码

<script>    
$("#Address1").select2({
    tags: [],
    ajax: {
        url: 'ajaxhandler.php',
        dataType: 'json',
        type: "POST",
        // quietMillis: 50,
        data: function (term) {
            return {
                term: term
            };
        },
        results: function (term) {

        } 
    }
});
</script>

ajaxhandler.php

<?php
$CITIES = array("Ahmedabad", "Mumbai", "USA", "Canada", "Pune");
echo json_encode($CITIES); exit;
?>  

1 个答案:

答案 0 :(得分:1)

Select2.js(版本4)的数据格式为:

{
  "results": [
    {
      "id": 1,
      "text": "Option 1"
    },
    {
      "id": 2,
      "text": "Option 2"
    }
  ]
}

请参阅:https://select2.org/data-sources/formats

所以你需要processResults收到表单服务器,如下所示:

    processResults: function (data) {
      return {
        results: $.map(data.items, function(obj, index) {
          return { id: index, text: obj };
        })
      };
    },

这是一个小提琴:http://jsfiddle.net/beaver71/cwb9r23b/