Как назначить теги для обработчика тегов по ioncache из базы данных

Я использую этот плагин под названием TagHandler. Ссылка: http://ioncache.github.io/Tag-Handler/ Могу ли я узнать, как можно назначить теги из базы данных, а не жесткий код для jquery? Пример для назначения тегов

$("#array_tag_handler").tagHandler({
    assignedTags: [ 'C', 'Perl', 'PHP' ],
    availableTags: [ 'C', 'C++', 'C#', 'Java', 'Perl', 'PHP', 'Python' ],
    autocomplete: true
});

Но я хочу это из базы данных MySQL.

Они привели пример только для доступных тегов, который использует встроенную функцию getData

$("#ajaxget_tag_handler").tagHandler({
    getData: { id: 'user123', type: 'user' },
    getURL: '/ajaxtest/get',
    autocomplete: true
});

Мне нужен пример PHP. Я не знаю, как получить данные в формате JSON.

С веб-сайта... "Предоставляя"getURL"для тегов, которые будут получены через AJAX. При использовании этого метода сервер должен предоставить массив в формате JSON с именем"availableTags"и, необязательно, дополнительный массив с именем" assignTags"."

1 ответ

Решение

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

$(document).ready(function()
{
    $("#array_tag_handler").tagHandler({
        dataType: 'json',
        getURL: '/admin/tag/list',
        autocomplete: true
    });

});

Это вызывает маршрут '/admin/tag/list' и ожидает возвращения json. На стороне сервера вы хотите получить список тегов и передать их обратно в формате json.

$result = getTags();  // Returns eg array('tag1', 'tag2', 'tag3', etc)

Затем создайте свой массив с правильными индексами в соответствии с документацией Tag Handler:

$data = array('availableTags' => $result);

Обратите внимание, что если вы хотите предварительно загрузить некоторые теги (например, tag1 и tag2), просто измените приведенный выше массив так, чтобы он выглядел так:

$data = array('availableTags' => $result, 'assignedTags' => array('tag1', 'tag2'));

Затем вам нужно json кодировать этот массив, прежде чем возвращать его клиенту:

return json_encode($data);
Другие вопросы по тегам