jquery autocomplete: работает для первого значения, как включить его для следующего? - PullRequest
1 голос
/ 21 декабря 2010

Я использую автозаполнение, чтобы пользователь мог легко вводить данные на входах, например:

 <?
$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, 'сможет ',' выбрать следующий элемент ',' с автозаполнением ';

и я проверил документацию по пользовательскому интерфейсу, но это не соответствует моему методу источника ... есть идеи? Я пытаюсь вот так (отредактировано с помощью Bugai13 apuration):

 <?
$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 ]

1 голос
/ 21 декабря 2010

Я использую следующее, чтобы получить несколько автозаполнений для тегов с разделителем ',', надеюсь, это поможет вам:

Это полный мой код, который работает. В моем случае в элементах функции разбора это просто массив 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
    });
}
0 голосов
/ 21 декабря 2010

Что печатает echo $b;?Я ожидаю, что вам понадобится что-то вроде echo implode(',', $b) или даже echo '"' . implode('", "', $b) . '"';, чтобы сделать эту работу, если $ b действительно является массивом PHP.используя PHP, но если он <? как PHP и $ как PHP ...)

...