所以我是jQuery的新手,我正在尝试使用Tagit来创建动态标签。该脚本提供的功能是显示可能的标记列表,供用户单击并将其作为其标记之一。此列表由Javascript数组填充,变量名为availableTags。
我想要做的是在MySQL数据库中查询标签,并在每次按下键时发生这种情况。
我需要一些帮助来确定如何使用jQuery代码...
Here is the source code for Tagit
我有一个使用JSONP的函数,但我宁愿使用JSON并修改隐藏的select元素的id和值,这样我就可以轻松地将它发布到我的php脚本中。
出于某种原因,我的功能无法正常工作,脚本不会返回任何值。
这是我到目前为止:(you can see the whole code here)
$(function() {
$('#demo3').tagit({
tagSource:function( request, response ) {
$.ajax({
url: "http://girlzunderground.com/php/profile-tags.php",
dataType: "jsonp",
data: {
txt: $("#test1").val(),
t: "books"
},
success: function( data ) {
response( data );
}
});
},
triggerKeys:['enter', 'comma', 'tab'],
allowNewTags: true
});
});
答案 0 :(得分:0)
您尝试做的事情将涉及很多开销,并且实际上根本无法扩展。
无论如何,您可以使用jquery
将事件绑定到输入然后让它做一个ajax查询[http://api.jquery.com/jquery.ajax/],它将是一个单独的服务器端脚本,用于从数据库中获取关键字。获得ajax响应后,您将不得不将其导入tagit。看起来链接中的文档向您展示了如何执行此操作...我之前没有使用过此脚本....看起来调用添加操作就是您要查找的内容。你需要确保你当然没有重复。
答案 1 :(得分:0)
嗯,我明白了。我遇到的一个主要问题是我没有发送JSON数据的标头。我需要在JSON实际工作之前指定此标头。还必须使用request.term来填充txt数据varialbe。
$(function() {
$.ajaxSetup({ cache: false });
$('#demo3').tagit({
tagSource:function( request, response ) {
$.ajax({
url: "php/profile-tags.php",
dataType: "json",
data: {
txt: request.term,
t: "books"
},
success: function( data ) {
response( data );
}
});
},
triggerKeys:['enter', 'comma', 'tab'],
allowNewTags: true
});
});