Foros del Web » Programando para Internet » PHP »

Ciclo while dentro de ciclo for

Estas en el tema de Ciclo while dentro de ciclo for en el foro de PHP en Foros del Web. Hola! Estoy desarrollando un menu de tipo arbolde forma dinamica y encontré uno divagando en la red, funciona perfectamente peero requiero que sea dinamico y ...
  #1 (permalink)  
Antiguo 03/05/2011, 16:05
Avatar de lord_clown  
Fecha de Ingreso: marzo-2011
Mensajes: 43
Antigüedad: 13 años, 9 meses
Puntos: 0
Ciclo while dentro de ciclo for

Hola!

Estoy desarrollando un menu de tipo arbolde forma dinamica y encontré uno divagando en la red, funciona perfectamente peero requiero que sea dinamico y estoy trabajando con php el, menu tipo arbol esta en javascript; hice algunas pruebas para que fuera automatizado en base a un numero y funciona perfecto, el detalle es qu cuando combino el php y el javascript ya no funciona correctamente, les dejo el codigo y voy explicando:

Este es el javascript original
Código:
             <script type="text/javascript">
		<!--
		var Tree = new Array;
		// nodeId | parentNodeId | nodeName | nodeUrl
		Tree[0]  = "1|0|Ingresos|#";
		Tree[1]  = "2|1|Mantenimiento|#";
		Tree[2]  = "3|1|Page 1.2|#";
		Tree[3]  = "4|3|Page 1.2.1|#";
		Tree[4]  = "5|1|Page 1.3|#";
		Tree[5]  = "6|2|Page 1.1.1|#";
		Tree[6]  = "7|6|Page 1.1.1.1|#";
		Tree[7]  = "8|6|Page 1.1.1.2|#";
		Tree[8]  = "9|1|Page 1.4|#";
		Tree[9]  = "10|9|Page 1.4.1|#";
		//-->
	</script>
La idea del javascript es armar un arreglo donde se va llenando el arbol, el primer numero antes del "|" es consecutivo, el segundo es donde se declara hijo de quien es en el arbol, el tercero la descripcion y el ultimo el link.

Hasta aqui sin problemas, de esto pase a esto:

Código:
<script type="text/javascript">
		<!--
		
		var renglones=<?php echo $renglones; ?>;
		var x;
		var y;
		var z;
		// nodeId | parentNodeId | nodeName | nodeUrl
		var Tree = new Array;
		 
		Tree[0]  = "1|0|INGRESOS|#";
		for(x=1; x<=renglones; x=x+1){
			z=x;
			y=x+1;
			Tree[x]	 = y+"|1|"+z+"|#";
		}
		//-->
	</script>
En este codigo lo que intente es que mediante un ciclo con mis consultas ya establecidas anteriormente me genere el arbol. Aqún aqui no tengo problemas ya que mi consulta tiene 5 registros y el ciclo funciona a la perfección me trae el arbol con 5 registros.

Ahora lo que intento es que en el valor de la variable z tenga el nombre del campo de mi base de datos que si lo obtengo mediante mi consulta, ya está revisado, de hecho abajo de mi codigo compruebo que realmente funcione ese query y todo bien pero el resultado del cambio es que me manda solo el nombre de uno de los campos en los 5 registros. Es decir mi resultado es:

INGRESOS
CAMPO5
CAMPO5
CAMPO5
CAMPO5
CAMPO5

Siendo que tengo 5 valores diferentes, este es el codigo que estoy manejando

Código:
<script type="text/javascript">
		<!--
		
		var renglones=<?php echo $renglones; ?>;
		var x;
		var y;
		var z;
		// nodeId | parentNodeId | nodeName | nodeUrl
		var Tree = new Array;
		 
		Tree[0]  = "1|0|INGRESOS|#";
		for(x=1; x<=renglones; x=x+1){
			<?php while ($row=mssql_fetch_array($result)){ ?>
			z="<?php echo $row['descripcion']; ?>";
			y=x+1;
			Tree[x]	 = y+"|1|"+z+"|#";
			<?php
			}
			?>
		}
		
		//-->
	</script>
Espero me puedan ayudar.

Saludos
  #2 (permalink)  
Antiguo 03/05/2011, 17:40
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: Ciclo while dentro de ciclo for

Código PHP:
Ver original
  1. <?php
  2. echo "
  3. <script type=\"text/javascript\">
  4.         <!--
  5.         var y;
  6.         // nodeId | parentNodeId | nodeName | nodeUrl
  7.         var Tree = new Array;
  8.          
  9.         Tree[0]  = '1|0|INGRESOS|#'";
  10.         for($x=1; $x<=$renglones; $x++)
  11.                 while ($row=mssql_fetch_array($result))
  12.                              echo "Tree[$x]= '".$x+1".|1--Aqui estas dejando siempre el mismo valor??--|$row[descripcion];|#'";
  13. echo"       //-->
  14. </script>
  15. ";
  16. ?>
  #3 (permalink)  
Antiguo 04/05/2011, 09:23
Avatar de lord_clown  
Fecha de Ingreso: marzo-2011
Mensajes: 43
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Ciclo while dentro de ciclo for

Ya lo hice, pero no me muestra nada . . .

Quedó de la siguiente manera porque me mandaba algunos errores:

Código:
<php
echo '<script type=\"text/javascript\">'.        
	'// nodeId | parentNodeId | nodeName | nodeUrl'.
	'var Tree = new Array;'.                 
	'Tree[0]  = "1|0|INGRESOS|#";';        
	for($x=1; $x<=$renglones; $x++){
	while ($row=mssql_fetch_array($result)){                             
	echo 'Tree[$x]= "'.$x+1.'|1|$row[descripcion]|#";';
	}
	}
	echo '</script>';

?>
Y respondiendo a tu pregunta, de momento si es fijo, mientras no me quede no puedo pasar al siguiente paso que es generar los hijos del arbol.
  #4 (permalink)  
Antiguo 04/05/2011, 10:34
Avatar de lord_clown  
Fecha de Ingreso: marzo-2011
Mensajes: 43
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Ciclo while dentro de ciclo for

Doy como terminado el tema ya encontre un menu en forma de arbol basado en php y fue mucho mas sencillo; les dejo las dos ligas tanto el de javascript-ajax y el de php en caso de que alguien los requiera.

Menu Javascript-Ajax: http://www.destroydrop.com/javascripts/tree/default.html

Menu PHP: http://www.chipchapin.com/WebTools/MenuTools/HTML_TreeMenuXL/

Saludos

Etiquetas: ciclos
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 21:53.