Tema: tabular
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/09/2009, 11:44
Avatar de PacoRuiz
PacoRuiz
 
Fecha de Ingreso: abril-2009
Mensajes: 254
Antigüedad: 15 años
Puntos: 3
He puesto este código:
<?php
$numero=1;
echo "<br><br><br>";
$cadena=$numero;
for($i=1;$i<=10;$i++){
$cadena=" ".$cadena;
echo "$cadena<br>";
}
?>
y me escribe todos los números al mismo nivel

Voy a intentar explicar mejor lo que quiero hacer. Este es el código:

Código:
function buscahijos($padre){
    global $clases;
    foreach ($clases as $actual){
        $hijo=$actual["ID"];
        if (eshijo($hijo, $padre)){
        echo "$hijo<br>";
        buscahijos($hijo);
        }
    }
}
La función buscahijos busca en un array a los elementos que son hijos de uno determinado, y los va mostrando al mismo nivel, pero para cada hijo llama otra vez a la función buscahijos. Si éste hijo no tiene a su vez hijos, es mostrado y ya está, pero si tiene hijos, éstos se muestran de nuevo mediante la función buscahijos, pero quiero que sean mostrados más a la derecha que los otros.

Este código funciona bien, y muestra todos los elementos en el orden correcto, pero no sé cómo hacer que desplace a la derecha cada nuevo nivel.

Ya he dado con la clave. El tema es que en html el código para escribir un espacio es &nbsp, no se escribe un espacio tal cual.

Este código ya me muestra la clasificación como yo quería, también la he modificado para que me muestre el nombre del tipo en lugar del número:

<?php
function buscahijos($padre,$nivel){
global $clases;
foreach ($clases as $actual){
$hijo=$actual["ID"];
$nombre=$actual["descrip"];
if (eshijo($hijo, $padre)){
for($i=1;$i<=$nivel;$i++){
echo"&nbsp";
}
echo "$nombre<br>";
buscahijos($hijo,$nivel+10);
}
}
}

Última edición por GatorV; 17/09/2009 a las 12:55