Saludos a todos solicito de su apoyo con una duda que tengo, que es la siguiente:
Estoy armando un menu con submenu de boostrap, con dos funciones
-La Funcion 1 trae todos las opciones sin los submenus (ya lo muestro sin problemas), dentro de la funcion 1 envio ciertos datos a la funcion 2 la cual dependiendo de esos datos hace una cosulta ajax y crea las opciones con sus submenus.
-El problema es que cuando en la funcion 1 intento concatenar el resultado de la funcion 2 con otras variables de la funcion 1 si me muestra los intentos correcto pero me devuelve UNDEFINE, ya realize un console.log en la funcion 2 y si genera los elementos espero puedas ayudarme saludos.
Pongo codigo de ambas funciones
Código:
ESTA FUNCION CREA EL MENU
function creamenu(){
var usuarioEMnu = $("#idUsuarioMenu").val();
var conadmin = "<ul class='sidebar-menu' data-widget='tree'>"
+"<li><a href='panel'><i class='fa fa-home'></i> <span>Inicio</span></a></li>";
var vauno = "<li class='header'>Areas</li>";
conteniodconsu = "";
//https://www.youtube.com/watch?v=0ELGh2mXas4
/* obtenemos todos los valores de la base de datos sin filtro por ser administrador */
$.ajax({
url: 'home/menuadminconsu',
type: 'POST',
dataType: 'json',
contentType: false,
processData: false,
cache: false,
}).done(function(res) {
res.data.forEach(function(persona, index) {
!!!!! AQUI ES DONDE INVOCO LA FUNCION Y DONDE ME TENDRIA QUE REGRESAR LA VARIABLE CON TODOS LOS ELEMENTOS CREADOS
concen += " "+ creamenusub(persona.dato,persona.icono,persona.nombre);
});
/* creamos variable con contenido de admin */
conadmindi ="<li class='header'>Administración</li>"
+"<li class='treeview'>"
+"<a style='cursor:pointer'><i class='fa fa-search'></i> <span>Catalogos</span><span class='pull-right-container'><i class='fa fa-angle-left pull-right'></i></span></a>"
+"<ul class='treeview-menu'>"
+"<li><a href='catAdmin/ubicacion'><i class='fa fa-circle-o'></i>Ubicaciones</a></li>"
+"<li><a href='catAdmin/areas'><i class='fa fa-circle-o'></i>Áreas</a></li>"
+"</ul>"
+"</li>"
+"<li><a href='soporte/admin'><i class='fa fa-cogs'></i> <span>Soporte</span></a></li>"
+"<li><a href='portada'><i class='fa fa-slideshare'></i> <span>Portada</span></a></li>"
+"<li><a href='menu'><i class='fa fa-bars'></i> <span>Menu</span></a></li>"
+"<li><a href='usuarios'><i class='fa fa-address-book-o'></i> <span>Usuarios</span></a></li>"
+"<li><a href='buzon'><i class='fa fa-newspaper-o'></i> <span>Buzón</span></a></li>"
+"<li class='treeview'>"
+"<a style='cursor:pointer'><i class='fa fa-search'></i> <span>Logs</span><span class='pull-right-container'><i class='fa fa-angle-left pull-right'></i></span></a>"
+"<ul class='treeview-menu'>"
+"<li><a href='log/acceso'>Acceso</a></li>"
+"<li><a href='log/actividades'>Actividades</a></li>"
+"</ul>"
+"</li>"
+"</ul>";
var final = conadmin +" "+ vauno +" "+ conteniodconsu +" "+ conadmindi;
//alert(final);
//console.log(final);
$("#menugeneral").html(final);
}).fail(function(err) {
toastr.error('Hubo un error en la petición', '¡Upss!');
})
}
/* funcion para ver si la seccion del menu cuenta con submodulos */
function creamenusub(valor,icono,nombre){
/* enviamos el valor por el data */
data = new FormData(),
data.append('padre', valor);
$.ajax({
url: 'home/menuadminconsusub',
type: 'POST',
dataType: 'json',
contentType: false,
processData: false,
cache: false,
data: data
}).done(function(res) {
contenido = "";
if(res.data == false){
/* en este caso no tenemos submenu y creamos la variable normal*/
contenido += "<li><a href='"+valor+"'><i class='fa "+icono+"'></i> "+nombre+"</a></li> ";
conteniodconsu = contenido;
}
else{
var medio = '';
var inicion= '';
/* en eset caso creamos el menu con submenus */
inicion += "<li class='treeview'><a style='cursor:pointer'><i class='fa "+icono+"'></i> <span>"+nombre+"</span><span class='pull-right-container'><i class='fa fa-angle-left pull-right'></i></span></a><ul class='treeview-menu'>";
/* aqui recorremos el resultado del sub para traer la opciones */
res.data.forEach(function(persona, index) {
medio += "<li><a href='"+valor+"/"+persona.dato+"'><i class='fa "+persona.icono+"'></i>"+persona.nombre+"</a></li>";
});
var fin ="</ul></li>";
contenido += inicion + medio + fin;
conteniodconsu = contenido;
}
console.log(conteniodconsu);
return conteniodconsu;
}).fail(function(err) {
toastr.error('Hubo un error en la petición', '¡Upss!');
})
}