【问题标题】:Select2 load data with Ajax from fileSelect2 从文件中使用 Ajax 加载数据
【发布时间】:2013-08-31 16:28:34
【问题描述】:

我有一个名为 listofValues.php 的脚本,它查询数据库并返回 JSON 格式的值。

我需要将这些值传递给 select2 data 成员。我需要它加载一次。

我不需要将值从select2 输入(术语)传递到我的listofValues.php,如this example 中所述

$('#select2div').select2({
        //data:[],
    ajax: {
        dataType: "json",
        url: "listofvalues.php",    
        success: function (data) {          
        }
    }

你能帮我解决这个问题吗?

【问题讨论】:

    标签: ajax jquery jquery-select2


    【解决方案1】:

    简单示例

    了解您从listofvalues.php 返回的对象的格式会很有用,但为了简单起见,我们假设它看起来像这样:

    [ {"id": 1, "text": "option1"},
      {"id": 2, "text": "option2"},
      {"id": 3, "text": "option3"} ]
    

    这是最容易使用的格式,默认情况下,select2 可以处理属性名称为 idtext 的对象并将它们呈现到下拉列表中。所以你的select2 初始化可能是这样的:

    $('#select2div').select2({
        ajax: {
            dataType: "json",
            url: "listofvalues.php",
            results: function (data) {
                return {results: data};
            }
        }
    });
    

    稍微复杂一点的例子

    现在让我们假设来自listofvalues.php 的数据不遵循方便的命名约定:

    [ {"id": 1, "firstName": "John", "lastName": "Lennon"},
      {"id": 2, "firstName": "Paul", "lastName": "McCartney"},
      {"id": 3, "firstName": "George", "lastName": "Harrison"},
      {"id": 4, "firstName": "Ringo", "lastName": "Starr"} ]
    

    我们必须设置一个函数来处理输出:

    function formatValues(data) {
        return data.firstName + ' ' + data.lastName;
    }
    

    还有我们的select2 初始化:

    $('#select2div').select2({
        ajax: {
            dataType: "json",
            url: "listofvalues.php",
            results: function (data) {
                return {results: data};
            }
        },
        formatResult: formatValues
    });
    

    让我知道你过得怎么样。

    【讨论】:

    • 悲伤的时候 :( 哪个部分,第一个例子,还是第二个?敲一个 JSFiddle,我会看看 :D
    • 我想通了。 json 需要在键周围加上引号: [ {"id": "1", "text": "option1"},{"id": "2", "text": "option2"},{"id": "3", "text": "option3"} ] 希望这会有所帮助。也许这就是您的答案没有被选为正确答案的原因。
    • 好收获。 JSON 并不是我的答案的一部分,我只是猜测了 OP 的 PHP 提供了什么。我会更新,因为格式正确的 JSON 会改进示例 :) 谁知道为什么 OP 从来没有回复我
    • @simon 值是怎么指定的?
    • @chris 抱歉,您指的是哪个值?
    猜你喜欢
    • 2015-05-12
    • 2018-05-11
    • 1970-01-01
    • 2021-12-22
    • 2017-06-25
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    • 2019-02-22
    相关资源
    最近更新 更多