1

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

 <?
$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 able to','select next item',' with autocomplete';

我检查了 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:是否允许提供贝宝奖励?

4

2 回答 2

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
    });
}
于 2010-12-21T10:25:16.550 回答
0

echo $b;打印什么?如果 $b 真的是一个 PHP 数组,我希望你会需要类似的东西echo implode(',', $b),或者甚至需要它来完成这项工作。echo '"' . implode('", "', $b) . '"';

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

于 2010-12-21T10:31:01.523 回答