Javascript 选择2“无法加载ajax结果”
很抱歉,无法找到解决方案 每当我尝试进行搜索时,select2将显示“结果无法加载” 我认为我的ajax设置是错误的 html: 2016年7月8日增补 某些更改ajax设置:Javascript 选择2“无法加载ajax结果”,javascript,jquery,ajax,select2,Javascript,Jquery,Ajax,Select2,很抱歉,无法找到解决方案 每当我尝试进行搜索时,select2将显示“结果无法加载” 我认为我的ajax设置是错误的 html: 2016年7月8日增补 某些更改ajax设置: dataType: 'jsonp' 到 加 type: 'GET', 现在没有“结果无法加载”的消息,也没有您上次评论的结果。处理结果应该返回一个具有结果键的对象 因此,它应该是: return { results: [{id: 1, text: 'Test'}] } 根据你最后的评论。处理结果应该返回一个具
dataType: 'jsonp'
到
加
type: 'GET',
现在没有“结果无法加载”的消息,也没有您上次评论的结果。处理结果应该返回一个具有结果键的对象 因此,它应该是:
return {
results: [{id: 1, text: 'Test'}]
}
根据你最后的评论。处理结果应该返回一个具有结果键的对象 因此,它应该是:
return {
results: [{id: 1, text: 'Test'}]
}
我最近在使用版本4.0.5时遇到了完全相同的问题 这是从版本4.0.6开始解决的组件中的已知错误 从Github官方存储库: 修复AJAX数据源错误4356
更新select2组件的本地版本解决了这个问题。我最近在使用版本4.0.5时遇到了完全相同的问题 这是从版本4.0.6开始解决的组件中的已知错误 从Github官方存储库: 修复AJAX数据源错误4356
更新select2组件的本地版本解决了这个问题。我有一个正在工作的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,我昨天已经实现了,它可能会帮助你
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));
}
}
当您接收单个对象时,返回的数据应该是数组od对象。好的,我这样做了:processResults:function数据,第{return[{id:0,text:'enhancement'},{id:1,text:'bug'}];}页,但是当您接收单个对象时,返回的数据应该是数组od对象。好的,我这样做了:processResults:function data,第{return[{id:0,text:'enhancement'},{id:1,text:'bug'}];}页,但是同样的错误
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));
}
}