将标记加载到PHP数组的输入字段中

时间:2014-01-04 10:38:40

标签: php jquery ajax tags

下面这个标签系统非常适合我:

http://jsfiddle.net/Wky2Z/11/

我想为这个标记系统添加一些功能。首先,在制作标签之前我想在输入框时加载标签。例如,我有如下的PHP数组:

$tags = array(1 =>'hello', 'hi', 'name', 'surname');

因此,如果框内的文本适合于数组中的一个标记,那么我们可以创建一个标记,同时按Enter键...在我看来,最好通过Ajax来做,因为所有标记都能够进入数据库...

我试图自己做,搜索谷歌,但没有找到我真正需要的东西。

P.S如果您不理解这个问题:请记住标记堆栈溢出系统....

1 个答案:

答案 0 :(得分:1)

http://jsfiddle.net/NYV5T/

允许的标签是奶酪,土豆和泡菜(allowedTags数组中的任何内容)

tags = [];
allowedTags = ["cheese","potato", "pickle"];
$("#textBox").keypress(function (e) {
    if (e.which === 13) {
        if (allowedTags.indexOf(this.value) !== -1){
            $(".target").append("<a href='#' class='tag' >"  + this.value+'<span class="cross">X</span>'+ "</a>");


        tags.push(this.value);
        this.value = "";

        }else{
            alert("not allowed tag");
        }

    }
});

$('body').on('click','.cross',function(){

    tags.splice($(this).parent('a').html(), 1);
    $(this).parent('a').remove();
});

$( "#textBox" ).autocomplete({
  source: allowedTags
});

如果'allowedTags'中没有匹配的标记,则if语句'allowedTags.indexOf'将返回-1。

您需要做的只是填充数据库中允许的标签 - 您可以通过ajax调用或(如果您的列表少于100个标签)执行此操作我会说在页面填充数组更有效加载一次。

根据OP请求添加了自动完成功能,使其成为一个完整的解决方案。

请注意!!! - 假设你有jquery-ui包含