Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Tengo problema en js para agregar submenú a un submenú que es extraída de una BD

Estas en el tema de Tengo problema en js para agregar submenú a un submenú que es extraída de una BD en el foro de Frameworks JS en Foros del Web. Hola amigos. Mi proyecto es un menú dinámico donde las categorías y subcategorías (submenues) son extraídas desde una BD. Todo funciona bien hasta el submenú ...
  #1 (permalink)  
Antiguo 12/08/2013, 18:01
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Tengo problema en js para agregar submenú a un submenú que es extraída de una BD

Hola amigos. Mi proyecto es un menú dinámico donde las categorías y subcategorías (submenues) son extraídas desde una BD. Todo funciona bien hasta el submenú primario porque cuando se trata del submenú secundario no se cómo mostrarlos en Json según su primario.

Ejemplo del funcionamiento (botón "productos"):
http://www.fravega.com/

Ejemplo gráfico del proyecto:



Ojalá puedan ayudarme por favor. Aquí van los códigos:

Aquí tengo el problema, en Json:

Código:
     $(document).ready(function()
            {
                $.getJSON("categories.php?callback=?",  function(data)
                {
					
                    $.each(data.Categorias, function(i, category)
                    {
                       
                        var subjsondata='';
                        $.each(category.subCategorias1, function(i, subCategorias1)
                        { 
                          
                            subjsondata += "<li>"+subCategorias1.name+"</li>";
					});
                 
                        var jsondata ="<li id='"+category.cat_id+"' class='category'>"+category.name+"<ul id='hide"+category.cat_id+"' class='hideul'>"+subjsondata+"</ul></li>";

                        $(jsondata).appendTo("#menu_ul");
                    });
                }
            );
                       

        $('#menu_ul').on('mouseover', '.category', function(event){
                    
                    $("#menu_slider").show();
              
                    var id=$(this).attr('id');

                    var V=$("#hide"+id).html();
                   
                    $("#submenu_ul").html(V);
                 
		
 		  $("#menu_slider").css({"background":"#0F0","width":"600px" });
	});

	

				//Mouse click on my account link
				$("#menu_box").mouseup(function()
				{
				return false
				});				
				

            });
BD según modelo de adyacencia:




categories.php:

Código PHP:
$user 'root';
$pass '';
$conn = new PDO('mysql:host=localhost;dbname=pruebamodadyacencia1'$user$pass); 

$queryCat $conn->prepare('select cat_id,name from categories1 where parent=0');
$queryCat->execute();

// parent categories node
$categories = array("Categorias" => array());

// juego de resultados:
while($rowCat $queryCat->fetch(PDO::FETCH_ASSOC)) {

$idCat $rowCat['cat_id'];

$querySubcat1 $conn->prepare("select cat_id,name from categories1 where parent='$idCat'");
$querySubcat1->execute();

   
// Seleccionamos categorías:
    
$category = array(); // temp array
    
$category["cat_id"] = $rowCat ["cat_id"];
    
$category["name"] = utf8_encode ($rowCat ["name"]);  
    
$category["subCategorias1"] = array(); // subcategories again an array

    
while($rowSub1 $querySubcat1->fetch(PDO::FETCH_ASSOC)) {
        
        
$idSubcat1 $rowSub1['cat_id'];
        
        
$querySubcat2 $conn->prepare("select cat_id,name from categories1 where parent='$idSubcat1'");
        
$querySubcat2->execute();
        
   
// Seleccionamos subcategorías primarias:    
         
$subcat1 = array(); // temp array
         
$subcat1["cat_id"] = $rowSub1['cat_id'];
         
$subcat1["name"] = utf8_encode ($rowSub1['name']);
         
$subcat1["subCategorias2"] = array(); // subcategories again an array
        /********************************/
        
    
while($rowSub2 $querySubcat2->fetch(PDO::FETCH_ASSOC)) {
        
    
/*Muestra todas las subcategorías que los valores
    del 'parent' sean iguales a los 'cat_id'.
Este caso: 
SUBCATEGORIA-1:A1 y SUBCATEGORÍA-1:A2*/    
        
        // Seleccionamos subcategorías secundarias:
        
$subcat2 = array(); // temp array
        
$subcat2["cat_id"] = $rowSub2['cat_id'];
        
$subcat2["name"] = utf8_encode ($rowSub2['name']);    
        
        
// pushing sub category into subcategories node            
        
array_push($subcat1["subCategorias2"], $subcat2);
    }    


        
/********************************/
        // pushing sub category into subcategories node            
        
array_push($category["subCategorias1"], $subcat1);
    }  
    
// pushing sinlge category into parent
    
array_push($categories["Categorias"], $category);
}
echo ((isset(
$_GET['callback'])) ? $_GET['callback'] : "") . '(' json_encode($categories) . ')'
HTML:

Código HTML:
 <nav id="productos">
                        <h5 id="botProd">PRODUCTOS</h5>
                        <div id="menuCategorias">
                                <div id='menu_box' class='shadow'>
                                    <ul id='menu_ul'>
                                    </ul>
                                </div>
                                <div id='menu_slider' class='sshadow'>           
                                    <ul id='submenu_ul'>
                                    </ul>
                                </div>
                        </div>
 </nav> 
  #2 (permalink)  
Antiguo 12/08/2013, 19:19
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Tengo problema en js para agregar submenú a un submenú que es extraída de

Hola:

Primero debes aprender algunos conceptos... no he visto nada de json (no urgué mucho), ya que json es una forma de escribir objetos (sintaxis), y lo que muestras es código de alguna librería, por eso lo he movido de foro...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: javascript, js, json, php, php+base+de+datos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:45.