Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/04/2020, 15:08
Avatar de humansl11
humansl11
 
Fecha de Ingreso: octubre-2009
Ubicación: Mexico
Mensajes: 61
Antigüedad: 14 años, 6 meses
Puntos: 0
Resultado UNDEFINE en funcion

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!');
    })


  }