使用Ajax选择二加载数据文件加载、文件、数据、Ajax

2023-09-11 00:54:00 作者:赋词半阙

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

I have a script called listofValues.php, which queries a database and returns JSON format values.

我需要的是将这些值传递给选择2 数据成员。我需要它来加载一次。

What I need is to pass these values to the select2 data member. I need it to load once.

我所描述的并不需要从选择2 将值输入(长期),以我的 listofValues​​.php 在这个例子

I don't need to pass values from select2 input (term) to my listofValues.php as described in this example

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

您可以帮我这个?

推荐答案

这将是知道你正在从 listofvalues​​.php 返回对象的格式是有用的,但我们只是假设,为简单起见,它看起来像这样的:

Simple Example

It would be useful to know the format of the object you're getting back from listofvalues.php, but let's just assume, for the sake of simplicity it looks like this:

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

这是使用,因为默认情况下最简单的格式,选择2 可以处理的属性名对象 ID 文本,使它们成为一个下拉列表。所以,你的选择2 初始化可能是这样的:

This is the easiest format to use, as by default, select2 can handle objects with property names id and text and render them into a dropdown list. So your select2 initialisation might look like this:

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

稍微复杂一些示例

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

Slightly Trickier Example

AJAX 爬取AJAX数据

Now let's assume the data from listofvalues.php doesn't follow the convenient naming conventions:

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

我们将不得不建立一个函数来处理输出:

We'll have to set up a function to handle the output:

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

和我们的选择2 初始化:

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

让我知道你上车。

Let me know how you get on.