选择2“无法加载ajax结果”
Posted
技术标签:
【中文标题】选择2“无法加载ajax结果”【英文标题】:Select 2 "ajax results could not be loaded" 【发布时间】:2016-11-09 17:42:01 【问题描述】:抱歉,找不到解决办法。
每当我尝试进行一些搜索时,select2 都会显示“无法加载结果”。
我认为我的 ajax 设置是错误的
html:
<select class="js-data-example-ajax form-control" multiple="multiple"></select>
脚本:
$(".js-data-example-ajax").select2(
ajax:
url: '@Url.Action("LoadCity", "Addresses")',
dataType: 'jsonp',
delay: 250,
data: function(params)
return
q: params.term, // search term
page: params.page
;
,
processResults: function(data)
return
results: data
;
,
cache: true
,
minimumInputLength: 1,
);
screen
添加 08.07.2016
一些改变 ajax 设置:
dataType: 'jsonp'
到
dataType: 'json'
并添加
type: 'GET',
现在没有消息“无法加载结果”,也没有结果
【问题讨论】:
返回的数据应该是数组 od 对象,而您收到的是单个对象。 好的,我这样做了: processResults: function (data, page) return [ id: 0, text: 'enhancement' , id: 1, text: 'bug' ]; ,但同样的错误 【参考方案1】:根据您最后的评论。处理结果应该返回一个具有结果键的对象。
应该是这样的:
return
results: [id: 1, text: 'Test']
【讨论】:
【参考方案2】:我最近在使用 4.0.5
版本时遇到了完全相同的问题这是从 4.0.6
版本开始解决的组件中的一个已知错误来自 Github 官方仓库:
修复 AJAX 数据源错误#4356
更新我的本地版本的 select2 组件解决了这个问题。
【讨论】:
【参考方案3】:我有这个工作 select2,我昨天实现了这个,它可能会对你有所帮助。
select2_common('.accounts','Account & Description');
function select2_common(selector,placeholder)
$(selector).select2(
minimumInputLength:2,
placeholder:placeholder,
ajax:
url: "your_url_here",
dataType: "json",
delay: 200,
data: function (params)
return
q: params.term, // search term
page: params.page
;
,
processResults: function (data)
// console.log(data);
return
results: $.map(data, function(obj)
if(obj.id!=0)
// console.log(obj);
return id: obj.id, text: obj.name ;
else
return id: obj.id, text: obj.name
)
;
,
cache: true
,
debug:false
);
//And your result should be in this form, from your method....
//I am using laravel php framework.
public function getAccountDetail(Request $request)
$q = $request->input('q');
$result=[];
if (isset($q) && $q != '')
/*---------- Search by account code or title ----------*/
$data = DB::table('acc_accounts')->select('acc_id','acc_code','acc_title')
->where('acc_code', 'like', '%' . $q . '%')
->orWhere('acc_title', 'like', '%' . $q . '%')
->limit(10)->orderBy('acc_code')->get();
foreach ($data as $key => $value)
$new1 = array('id' => $value->acc_id, 'name' => $value->acc_code.' ('.$value->acc_title.')' );
array_push($result,$new1);
print(json_encode($result));
【讨论】:
以上是关于选择2“无法加载ajax结果”的主要内容,如果未能解决你的问题,请参考以下文章
无法加载JIT编译器(CLR.DLL):文件可能丢失或损坏,请重新检查或重新安装,请问这个问题怎么解决!
Elementelementui的Cascader 级联选择器,在懒加载的时候数据无法回显的解决方案
VirtualBox 下USB 设备加载的步骤及无法加载的解决办法