Adjunté valores preseleccionados de Select2 usando AJAX como a continuación.
$.ajax({ type: 'POST', dataType: 'json', url: "/wordpressbosta/matt/wp-admin/admin-ajax.php", // url: "/wp-admin/admin-ajax.php", data: { element_id: element_id, action: 'get_preselect_values', }, }).then(function (data) { var options = []; if (data) { $.each(data, function (index,text) { options.push(new Option(text['text'], text['id'], true, true)); }); } selectEle.append(options).trigger('change'); } Me gustaría establecer el title de los valores preseleccionados.
Intenté con el siguiente código.
$.ajax({ type: 'POST', dataType: 'json', url: "/wp-admin/admin-ajax.php", data: { element_id: element_id, action: 'get_preselect_values', }, }).then(function (data) { var options = []; if (data) { $.each(data, function (index,text) { var user_data = '<table> \ <tr> \ <td>Organisation</td> \ <td>'+text[0][1]+'</td> \ </tr> \ <tr> \ <td>Age</td> \ <td>'+ text[0][0]+'</td> \ </tr> \ </table>'; var opt = new Option(text['text'], text['id'], true, true); opt.attr("title",user_data); options.push(opt); }); } selectEle.trigger('change');Creo que está buscando la opción templateSelection .
$(".js-example-templating").select2({ templateSelection: formatState, }); function formatState(state) { return $( `<span class='tooltip' title='${state.title}'>${state.text}</span>` ); } Editar: agregar selectEle.append(opt); antes de desencadenar el cambio
$.ajax({ type: "POST", dataType: "json", url: "/wp-admin/admin-ajax.php", data: { element_id: element_id, action: "get_preselect_values", }, }).then(function (data) { // var options = []; if (data) { $.each(data, function (index, text) { var user_data = "<table> \ <tr> \ <td>Organisation</td> \ <td>" + text[0][1] + "</td> \ </tr> \ <tr> \ <td>Age</td> \ <td>" + text[0][0] + "</td> \ </tr> \ </table>"; var opt = new Option(text["text"], text["id"], true, true); opt.attr("title", user_data); // options.push(opt); selectEle.append(opt); // added codes }); selectEle.trigger("change"); } });Pruebe el método de select2 cuando se selecciona un elemento
$('#example').on('select2:select', function (e) { $(this).attr('title', 'some value title'); });