Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   TreeView en php (https://www.clubdelphi.com/foros/showthread.php?t=58842)

lucasarts_18 03-08-2008 18:47:06

TreeView en php
 
Hola a todos:

Tengo una consulta que me devuelve una serie de datos de forma jerarquica y que necesito implementarlo como el gráfico siguiente:
  • Bodega central
    • Pasillo1
      • Costado1
        • Columna1
          • Fila1
          • Fila2
          • Fila3
        • Columna2
      • Costado2
    • Pasillo2
  • Bodega central 2
    • etc
    • etc
Cabe mencionar que los datos son dinamicos y pueden a ver muchas más columnas y muchos más pasillos, por lo tanto me es complicado hacerlo en javascript (librerías que andan dando vuelta por ahí).

Alguien conoce alguna clase php que implemente esto (eché un vistazo a las pear, pero igual las encontré demasiado complicadas).

Alguien tiene una idea....:(

Saludos .-

dec 03-08-2008 19:51:03

Hola,

Yo miraría un plugin para jQuery como el propio Treeview. En este caso tú podrías generar una lista HTML, y el plugin Treeview de jQuery se encargaría de todo... Por otro lado, supongo que existirán otros plugins. En todo caso, creo que el tema pasaría por el cliente, por JavaScript, tú desde PHP podrías dar salida a datos, incluso en algún formato predeterminado (JSON, XML), de forma que JavaScript se encargase de lo demás. A ver qué te parece el plugin Treeview que enlazo arriba. Tiene una pinta excelente.

lucasarts_18 03-08-2008 20:45:20

Cita:

Empezado por dec (Mensaje 305447)
Hola,

Yo miraría un plugin para jQuery como el propio Treeview. En este caso tú podrías generar una lista HTML, y el plugin Treeview de jQuery se encargaría de todo... Por otro lado, supongo que existirán otros plugins. En todo caso, creo que el tema pasaría por el cliente, por JavaScript, tú desde PHP podrías dar salida a datos, incluso en algún formato predeterminado (JSON, XML), de forma que JavaScript se encargase de lo demás. A ver qué te parece el plugin Treeview que enlazo arriba. Tiene una pinta excelente.


Hola dec, se ve muy elegante el arbol, salvo que no tiene como especificar nodos padre y nodos hijos....:o

dec 03-08-2008 20:55:40

Hola,

¿Pues cómo no? ¿No hay nodos padres y nodos hijos en el ejempo del plugin? :confused:

lucasarts_18 03-08-2008 21:09:05

Cita:

Empezado por dec (Mensaje 305455)
Hola,

¿Pues cómo no? ¿No hay nodos padres y nodos hijos en el ejempo del plugin? :confused:

Jeje, si, claro que si, pero me refiero a programamación. (algo así padre->additem ).

Por ahora eso es lo único que me complica, ya que dicho plugins se ve de maravilla, pero me veo complicado desde php generar dinamicamente los <ul> e <il> del html....

Saludos .-

dec 03-08-2008 21:28:30

Hola,

Pero de alguna manera tienes que dar salida a los datos. Si este plugin en concreto no admite otra "entrada" que no sea una lista HTML (que luego el plugin convierte en el "Treeview") debe haber algún otro plugin que admita otra entrada, sea en formato XML, JSON o algo. Pero, insisto, de alguna manera tienes que dar salida a los datos. La lista HTML tiene la ventaja de que, en caso de que el usuario no disponga de JavaScript, el "árbol" seguiría existiendo, puesto que se vería como listas "anidadas".

En todo caso estamos hablando de mostrar los datos en el cliente, y tú desde PHP no puedes (hasta donde yo llego) crear un "Treeview", sino que este habrá de crearse en el propio cliente, con JavaScript. Desde PHP podrás enviar los datos oportunos, como digo, pero, no es PHP quien trabaja en el cliente, como sabes, sino que es JavaScript. Por cierto, aquí hay más ejemplos del mismo plugin: observa que sí que es posible añadir "nodos" en tiempo de ejecución, por decirlo así, para lo que se usará JavaScript, pero, intuyo que nada impedirá requerir datos al servidor...

dec 03-08-2008 21:29:47

Hola,

Fíjate en este ejemplo en concreto, que presupone a PHP en el servidor, sirviendo datos.

lucasarts_18 03-08-2008 21:51:00

Excelente amigo dec,pero soy tan torpe que no sé como lo hace jquery para leer ese archivo php.

:D

dec 03-08-2008 21:53:11

Hola,

Pues no hay sino mirar el código fuente del ejemplo anterior, en él se puede ver esto:

Código:

<script type="text/javascript">
$(document).ready(function(){
  $("#black").treeview({
    url: "source.php"
  })
});
</script>

Es decir, primero, se espera a que el DOM del documento esté completamente cargado. Entonces se ejecutará la función "ready", y es ahí donde entra el plugin "Treeview". Se le indica el contenedor ("#black") donde debe conformar el "Treeview", y se le pasa como parámetro la URL del archivo "PHP" que ofrece los datos correspondientes. Bueno. Más o menos. ;)

lucasarts_18 03-08-2008 22:12:56

Si, ahí mire el código fuente de la página y vi el llamado del archivo.

Ahora solo me falta "jugar" con php para cargar los datos de acuerdo a ese formato y pasarselo a jquery para que arme él solo el arbol.....veré que resulta finalmente, gracias dec....

Hasta Luego .-

dec 03-08-2008 22:25:33

Hola,

Podrías tratar de averiguar si el formato en cuestión es conocido. Quiero decir, si fuera JSON (que no estoy seguro, pero, me lo parece) u otro similar, es posible que tengas ya software en PHP para tratar con ese formato, de modo que todavía pueda resultarte más grato el trabajo. ;)

lucasarts_18 04-08-2008 05:30:01

Cita:

Empezado por dec (Mensaje 305466)
Hola,

Podrías tratar de averiguar si el formato en cuestión es conocido. Quiero decir, si fuera JSON (que no estoy seguro, pero, me lo parece)

Hola, si es JSON.

Código PHP:

{"menu": {
  
"id""file",
  
"value""File",
  
"popup": {
    
"menuitem": [
      {
"value""New""onclick""CreateNewDoc()"},
      {
"value""Open""onclick""OpenDoc()"},
      {
"value""Close""onclick""CloseDoc()"}
    ]
  }
}} 

Pues tiene el mismo formato que el ejemplo anterior y eso es JSON según la wikipedia.

Saludos .-

dec 04-08-2008 13:49:15

Hola,

Por eso te decía... igual ahora es posible hacerse de alguna clase para PHP a la que entreges un "Array", por ejemplo, y te retorne el mismo en formato "JSON". De este o de otro modo similar, de lo que se trata es de evitarte tener que construir el "JSON" a mano, sin ayuda. En todo caso, tú verás, que llevas gafas. :) ;)

roman 04-08-2008 15:57:29

Cita:

Empezado por dec (Mensaje 305522)
igual ahora es posible hacerse de alguna clase para PHP a la que entreges un "Array", por ejemplo, y te retorne el mismo en formato "JSON".

Hola.

// Saludos

dec 04-08-2008 15:59:35

Hola,

Ahí es nada, una función integrada en PHP. Gracias por el dato Román. ;)


La franja horaria es GMT +2. Ahora son las 17:55:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi