用于自动完成jquery插件的JSONP Freebase
这来自 但是,由于可以使用Javascript使用JSONP来实现这一点,我想知道如何实现 因此,我正在使用这个jquery自动完成插件: 这是在输入上使用插件的代码:用于自动完成jquery插件的JSONP Freebase,jquery,autocomplete,jsonp,freebase,Jquery,Autocomplete,Jsonp,Freebase,这来自 但是,由于可以使用Javascript使用JSONP来实现这一点,我想知道如何实现 因此,我正在使用这个jquery自动完成插件: 这是在输入上使用插件的代码: $(function() { var t = new $.TextboxList('#form_topick_tags', {unique: true, plugins: {autocomplete: { minLength: 2, queryRemote: true,
$(function() {
var t = new $.TextboxList('#form_topick_tags', {unique: true, plugins: {autocomplete: {
minLength: 2,
queryRemote: true,
remote: {url: 'autocomplete2.php'}
}}});
我想解析来自Freebase的结果,例如
然后按以下顺序将其传递给插件:
guid,"name",null,"name<span>n:type name</span>"
guid,“name”,null,“namen:type name”
因此,第一个结果是:
0,"The Beatles",null,"The Beatles<span>Band</span>"
0,“披头士乐队”,空,“披头士乐队”
var搜索='披头士',
myJSONArray=[];
$(函数(){
var t=new$.TextboxList(“#form_topick_tags”{
独一无二:没错,
插件:{
自动完成:{
最小长度:2
}
}
});
$.ajax({
数据类型:'JSONP',
成功:功能(obj){
对于(变量i=0,orl=obj.result.length;i
这是一个不错的计划!所以你的问题是什么?我必须将“搜索”变量声明为“披头士”吗?因为“搜索”必须是输入字段上的文本…不,您没有。只需替换要搜索的输入字段的值,例如,var search=document.getElementById('mysearchement')。值,
,并基于按钮单击事件运行整个代码,而不是在页面就绪时运行。
<input id="form_topick_tags" />
<!-- Adjust the script tag locations per your set-up -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script src="GrowingInput.js" type="text/javascript" charset="utf-8"></script>
<script src="../Source/TextboxList.js" type="text/javascript" charset="utf-8"></script>
<script src="../Source/TextboxList.Autocomplete.js" type="text/javascript" charset="utf-8"></script>
<!-- required for TextboxList.Autocomplete if method set to 'binary' -->
<script src="../Source/TextboxList.Autocomplete.Binary.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var search = 'beatles',
myJSONArray = [];
$(function() {
var t = new $.TextboxList('#form_topick_tags', {
unique: true,
plugins: {
autocomplete: {
minLength: 2
}
}
});
$.ajax({
dataType:'JSONP',
success: function (obj) {
for (var i=0, orl=obj.result.length; i < orl; i++) {
var o = obj.result[i];
myJSONArray.push([o.guid, o.name, o.name+'<span>'+o['n:type'].name+'</span>']);
}
// For testing:
// alert(myJSONArray);
// You can just use myJSONArray, but if you need JSON, see http://json.org for a JSON converter; in modern browsers, JSON is supported by default
//alert(JSON.stringify(myJSONArray));
t.plugins['autocomplete'].setValues(myJSONArray);
},
url:
'http://www.freebase.com/private/suggest?type_strict=any&category=object&all_types=false&start=0&limit=10&prefix='+encodeURIComponent(search)
});
});
</script>