gpt4 book ai didi

javascript - 如何加载 JSON 数据以与 select2 插件一起使用

转载 作者:可可西里 更新时间:2023-11-01 01:45:00 25 4
gpt4 key购买 nike

我想为我的项目使用 select2 插件。我关注了 this 示例,但它对我不起作用。

JSON 输出:

[
{"ime":"BioPlex TM"},
{"ime":"Aegis sym agrilla"},
{"ime":"Aegis sym irriga"},
{"ime":"Aegis sym microgranulo"},
{"ime":"Aegis sym pastiglia"},
{"ime":"Agroblen 15816+3MgO"},
{"ime":"Agroblen 18816+3MgO"},
{"ime":"Agrobor 15 HU"},
{"ime":"Agrocal (Ca + Mg)"},
{"ime":"Agrocal (Ca)"},
{"ime":"Agrogold"},
{"ime":"Agroleaf Power 12525+ME"},
{"ime":"Agroleaf Power 151031+ME"},
{"ime":"Agroleaf Power 202020+ME"},
{"ime":"Agroleaf Power 311111+ME"},
{"ime":"Agroleaf Power Ca"},
{"ime":"Agrolution 14714+14 CaO+ME"},
{"ime":"Agrovapno dolomitno"},
{"ime":"Agrovit HSF"},
{"ime":"Agrovit P"},
{"ime":"Agrozin 32 T"},
{"ime":"Albatros Hydro"},
{"ime":"Albatros Sprint"},
{"ime":"Albatros Standard"},
{"ime":"Albatros Universal"},
{"ime":"Algaren"},
{"ime":"AlgoVital ? Plus"},
{"ime":"Amalgerol PREMIUM"},
{"ime":"Amcolon \/ Novalon"},
{"ime":"Amcopaste"},
{"ime":"Aminosprint N8"},
{"ime":"AminoVital"},
{"ime":"Ammonium nitrate 33.5%"},
{"ime":"Ammonium nitrate with calcium sulfate"},
{"ime":"Ammonium sulfate"}
]

脚本:

function formatDjubrivo(data) {
return data;
}
function formatDjubrivo1(data) {
return data.ime;

$( "#inputs" ).change(function() {
console.log('prolazi klik');
var t = $( this ).val();
console.log(t);
if (t=='djubrivo') {
console.log('prolazi klik if');
$('#stavka').select2({
ajax: {
dataType : "json",
url : "djubrivo.php",
results : function (data) {
return {results: data};
}
},
formatResult : formatDjubrivo
});
}else {
console.log('nije djubrivo');
}
});

HTML:

<div class="col-md-2" style="padding-right:0px;">
Vrsta Inputa
<select id="inputs" name="inputs" class="form-control js-example-responsive">
<option value="djubrivo">djubrivo</option>
<option value="pesticidi">pesticidi</option>
<option value="kultura">kultura</option>
<option value="voda">voda</option>
</select>
</div>

<div class="col-md-2" style="padding-right:0px;">
Stavka
<input id="stavka" name="stavka" class="form-control js-example-responsive">
</div>

这是我使用 console.log 测试我的代码时的结果:

Select2: The AJAX results did not return an array in the results key of the response.

我哪里弄错了?

最佳答案

从您提供的示例链接和您收到的错误消息看来,您正在使用 Select2 4.0。但是,您的代码是为以前版本的 Select2 编写的。

如果想继续使用Select2 4.0:

(1) 改变results processResults 的 ajax 选项.

(2) 改变processResults功能所以results它返回的对象的属性是一个对象数组,其中每个对象都有一个 id。和一个 text属性(property)。一种方法是使用 $.map() 函数从 ajax 调用返回的数组创建一个新数组。

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

你也可以去掉 formatResult选项。

(3) 使用 <select>元素,而不是 <input>元素。

<select id="stavka" name="stavka" class="form-control js-example-responsive"></select>

jsfiddle

关于javascript - 如何加载 JSON 数据以与 select2 插件一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28355083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com