jquery autocomplete:适用于第一个值,如何为下一个启用它?

时间:2010-12-21 00:29:53

标签: php jquery jquery-ui jquery-ui-autocomplete

我正在使用自动完成功能,因此用户可以轻松输入输入数据,如下所示:

 <?
$a = new etiqueta(0, '');
$b = $a->autocomplete_etiquetas();
?>
<script type="text/javascript">
    function cargar_autocomplete_etiquetas(){
        $("#tags").autocomplete({
            source: [<? echo $b; ?>]
        });
    }
</script>

$ a = $ b 一个数组,结果如下:'help','please',i','need','to,'be能够','选择下一项','使用自动完成';

我检查了ui文档,但它与我的源方法不相符..任何想法? 我正在尝试这样(使用Bugai13 aportation编辑):

 <?
$a = new etiqueta(0, '');
$b = $a->autocomplete_etiquetas();
?>
<script type="text/javascript">
    function cargar_autocomplete_etiquetas(){
    $("#tags").autocomplete({
        source: [<? echo $b; ?>],
        multiple: true,
        multipleSeparator: ", ",
        matchContains: true
    });
}

</script>

但我不知道该怎么做..任何想法?是自动完成的.push和.pop函数吗?或者我应该定义它们吗?

再次感谢!

PS:我正在沉迷于这个网站! PS:来个老兄,我觉得答案对很多人来说非常有用 PS:是否可以提供paypal奖励?

2 个答案:

答案 0 :(得分:1)

我已经使用以下功能为'+'分隔符的标签工作多个自动完成功能,希望这有助于您:

我的代码完整无缺。在我的情况下,在解析函数项中它只是json数组,尝试添加解析方法:

   $("#txtTags").autocomplete(UrlFactory.TAGS_AUTOCOMPLETE_URL, {
    matchContains: true,
    width: 320,
    max: 10,
    highlight: false,
    multiple: true,
    multipleSeparator: ", ",
    scroll: true,
    scrollHeight: 300,
    dataType: "json",
    parse: function (data) {
        var result = Result.fromJson(data);

        var items = result.getJson("Tags");
        var arr;
        if (items != null)
            arr = items.split(",");
        return $.map(arr, function (row, i) {
            return {
                data: row,
                value: row,
                result: row
            }
        });
    },
    onItemSelect: function () {

    },
    formatItem: function (data, i, n, value) {
        if (value != null) {
            value = ltrim(value);
            value = rtrim(value);
        }
        return value;
    }
});

所以,你需要这样的东西:

function cargar_autocomplete_etiquetas(){
    $("#tags").autocomplete({
        source: [<? echo $b; ?>],
        multiple: true,
        multipleSeparator: ", ",
        matchContains: true
    });
}

答案 1 :(得分:0)

echo $b;打印什么?如果$ b确实是一个PHP数组,我希望你需要echo implode(',', $b)甚至echo '"' . implode('", "', $b) . '"';之类的东西来实现这个功能。

编辑:(当然我只假设您使用的是PHP,但如果<?像PHP一样,$就像PHP一样......)