使用Tagit与PHP和MySQL:从数据库生成标签

时间:2014-08-13 13:02:25

标签: php jquery mysql

所以我是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
    });
});

2 个答案:

答案 0 :(得分:0)

您尝试做的事情将涉及很多开销,并且实际上根本无法扩展。

无论如何,您可以使用jquery

将事件绑定到输入

http://api.jquery.com/keyup/

然后让它做一个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
    });
});