begin process at 2012 05 30 19:51:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

POO

 > 

Classes & Objets

 > 

intervalle et rendu html


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

intervalle et rendu html

vendredi 11 novembre 2011 à 22:40:08 | intervalle et rendu html

eltyty

bonjour,

je trouve beaucoup de tuto pour expliquer les intervalles mais personne ne montre comment faire le rendu ce qui me pose aujourd'hui des problèmes.
j'ai une table :
id parent_id lft rght name

je souhaiterai faire une rendu dans une table avec un décalage pour les enfants

ex :

dev
--php
----exemples
----tuto
maison
--liens
--articles
----tuto
j'obtiens bien l'ensembles des resultats dans un array mais comment mettre en forme avec des foreach je suppose ?
merci d'avance.
lundi 14 novembre 2011 à 12:49:55 | Re : intervalle et rendu html

JulSoft

Membre Club
Tiens... Je viens de faire un truc du genre...

Tu peux utiliser des listes <ul><li> etc... qui marchent bien.

Sinon, j'ai fait un truc avec des div et du css qui marche pas mal (bien que ça soit techniquement moins propre que les listes) en insérant une marge dans les divs enfants...
lundi 14 novembre 2011 à 13:45:41 | Re : intervalle et rendu html

eltyty

oui j'ai vu qu'il y en a qui essaie avec du css, mais je trouve que cela complique, perso j'aimerai incrémenter les enfants par des --
ce qui donnerai
rub
--enfant 1
----enfant de enfant 1
--enfant 2
Si t'as un exemple de code qui donnerai ce genre d'effet.
Merci
lundi 14 novembre 2011 à 14:55:07 | Re : intervalle et rendu html

JulSoft

Membre Club
tu peux ruser avec ton css et utiliser un background qui contient tes -. C'est ce que j'ai fait pour représenter une arborescence. Je te refile un bour de code des que j'ai le temps de le dépoluer...
mardi 15 novembre 2011 à 16:43:57 | Re : intervalle et rendu html

eltyty

Lut,
en ajoutant la notion de level, j'ai réussi à faire quelque chose de potable sans tableau avec des ul, mais le but est de pouvoir incrémenter par des -- et non des ul car dans un tableau la mise en forme saute automatiquement.
Voici déjà ce que j'ai fait :
Code PHP :
    <?php foreach($categories as $k=>$v): ?>
    <tr>

        <td>
            
        <?php 
                   if ($levelPrevious < $v['Category']['level']) {
                    echo str_repeat('<ul>', $v['Category']['level'] - $levelPrevious);
                    $prevpass = $levelPrevious;
                    $levelPrevious=$v['Category']['level'];
                    
                    echo '--'.$v['Category']['name'].' ('.$prevpass.' < '.$levelPrevious.')<br />';
             }
            elseif($levelPrevious > $v['Category']['level']){
                    $r .= str_repeat('</ul>', ++$levelPrevious - $v['Category']['level']);
                    $prevpass = $levelPrevious;
                    $levelPrevious=$v['Category']['level'];
                    
                    echo '--'.$v['Category']['name'].' ('.$prevpass.' > '.$levelPrevious.')<br />';
             }
            else{
                    $prevpass = $levelPrevious;
                    echo '--'.$v['Category']['name'].' ('.$prevpass.' < / > '.$levelPrevious.')<br />';
                    
                    $levelPrevious=$v['Category']['level'];
            }
<?php endforeach; ?>
        ?>

Je dois mettre ces résultats dans un tableau où il y aura une colonne nom, online et actions (supp,modif)

Si tu arrives à mettre un css particulier peut être que j'ai moyen de m'en servir donc j'attends ;-)
Par contre mon but serait de ne pas me servir des level sauf si vraiment obligatoire ;-)
Merci
samedi 19 novembre 2011 à 12:44:19 | Re : intervalle et rendu html

camillagaiaschicherie

bonjour

je ne sais pas si c est cela mais bon :

<style type="text/css">
ul {
margin:0;
padding:0;
}
li {
list-style:disc;
margin-left:20px;
}
li a {
float:right;
padding:0 5px;
}
</style>

Code PHP :
<?php

$sql="SELECT * FROM table";
$res=mysql_query($sql);
while($data=mysql_fetch_array($res)){
	$rec[]=$data;
}

function generate_tree_list($arr, $parent = 0){
	$has_children = false;
  	foreach($arr as $key => $value){
    	if ($value['parent_id'] == $parent){
      		if ($has_children == false){
        		$has_children = true;
        		echo '<ul>';
      		}
      		echo '<li>' . $value['name'];
      		echo '<a href="#">Delete</a>';
			echo '<a href="#">Edit</a>';
			echo '<a href="#">On/Off</a>';
	  		unset($arr[$key]);
	  		generate_tree_list($arr, $value['id']);
      		echo '</li>';
    	}
  	}
  	if ($has_children === true) echo '</ul>';
}

function generate_tree_table($arr, $parent = 0,$level = 0){
	$has_children = false;
  	foreach($arr as $key => $value){
    	if ($value['parent_id'] == $parent){
      		if ($has_children == false){
        		$has_children = true;
        		$level++;
      		}
      		echo '<tr>';
			echo '<td style="padding-left:'.(20*($level)).'px;">'. $value['name'].'</td>';
      		echo '<td><a href="#">On/Off</a></td>';
			echo '<td><a href="#">Edit</a></td>';
			echo '<td><a href="#">Delete</a></td>';
			echo '</tr>';
	  		unset($arr[$key]);
	  		generate_tree_table($arr, $value['id'],$level);
    	}
  	}
}

echo '<div style="width:500px;border:1px solid #aaa;">';
echo generate_tree_list($rec);
echo '</div>';

echo '<table border="1" cellpadding="5">';
echo generate_tree_table($rec);
echo '</table>';

?>
lundi 21 novembre 2011 à 11:46:06 | Re : intervalle et rendu html

JulSoft

Membre Club
bon, un truc à l'arrache, uniquement en php

Code PHP :
<?php 

$a = array(
	array("parent1",array(
		array("enfant1",array()),
		array("enfant2", array(
			array("enfant21",array())
		)),
		array("enfant3",array())
	)),
	array("parent2", array())
);

function afficheHierarchie($array){
	static $level = -1;
	
	$level ++;
	foreach($array as $element){
		for($i=0;$i<$level;$i++)
			echo "--";
		echo $element[0] . "<br />";
		afficheHierarchie($element[1]);
	}
	$level--;
	
}

afficheHierarchie($a);

?>


Pour incrémenter uniquement avec des --.

Après ça vaut ce que ça vaut hein.


Cette discussion est classée dans : table, html, tuto, rendu, intervalle


Répondre à ce message

Sujets en rapport avec ce message

Afficher des balisse HTML comme du texte... [ par spike911 ] Bonjours, Je travail en PHP, MySQL sous un serveur Apache en local. J'ai créer une table avec quelques petit champ, cette table contien des commentair php mysql html [ par hela31 ] je travaille sur un site web dans mes etude gestion d une residence j ai table client table tarifs table disponibilite dans une page j ai un tableau q Boucle + liste de fichier [ par maximefranck ] Bonjour ,   j'aurai encor besoin de votre aide ...j'ai cree un code  pour  diviser un  mon de fichier , je  m'explique  dans le repertoire ***** il y Largeur d'une page web [ par Ecux ] Bonjour, j'ai un petit souci avec une table en html. A partir d'une certaine largeur le contenu des se met automatiquement sur plusieurs lignes (ret afficher une valeur js dans une table html [ par niss87 ] Bonjour; desolé d'avoir mis mon probleme ici, mais je n ai pas trouvé son bon endroit dans le forum js! mon pb: j 'ai une table html, qui se remplie TABLE BDD [ par begueradj ] Azul, J'ai à ajouter un produit à l'une des 4 catégories prédéfinies à partir d'un [code=html]...[/code] Et lorsque je posete le [code=html]....[/cod Mise en forme d'une table avec du PHP [ par darktonin ] Bonjour à tous, Débutant en PHP, j'aimerai savoir comment superposer plusieurs lignes de données dans un tableau HTML. Je m'explique: Le résultat à Format table mysql pour stocker dates récurentes [ par hdh ] Bonjour Je voudrais faire une sort de module GTD ("Get Things Done" : sorte d'agenda pour l'aide à la gestion de projet) en php & mysql. Pour cela je include pour un débutant [ par sweaty41 ] Bonjour à tous Je débute en php pour créer un site. j'ai commencé ce site en html et j'avais utiliser les iframes et après renseignements sur le net, faire un select dans ma table eleve [ par msi079 ] salut a vous j'ai crée une table a partir de laquelle je veux faire un SELECT mais je reçois l'erreur : ----------------------------------------------


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales