IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Manipulation XML une boucle dans une boucle [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Points : 88
    Points
    88
    Par défaut Manipulation XML une boucle dans une boucle
    Bonjour à tous,

    Je fais un site multilangue et pour le menu, j'ai pensé utiliser le xml.
    Voilà, j'en suis à la génération du menu mais j'ai des difficultés de logique de boucle et surement de syntaxe (c'est tout nouveau pour moi cette manipulation).

    Voici mon XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    <?xml version="1.0" encoding="utf-8"?>
    <menu>
    	<niveau1>
    		<titre>Home</titre>
    		<link>home</link>
    	</niveau1>
    	<niveau1>
    		<titre>Our people</titre>
    		<link>our-people</link>
    	</niveau1>
    	<niveau1>
    		<titre>Our services</titre>
    		<link>our-services</link>
    		<niveau2>
    			<titre>Leadership</titre>
    			<link>leadership</link>
    		</niveau2>
    		<niveau2>
    			<titre>Coaching</titre>
    			<link>coaching</link>
    		</niveau2>
    		<niveau2>
    			<titre>Mentoring</titre>
    			<link>mentoring</link>
    		</niveau2>
    	</niveau1>
    	<niveau1>
    		<titre>Join our team</titre>
    		<link>join-our-team</link>
    	</niveau1>
    	<niveau1>
    		<titre>Core values &amp; code of Ethics</titre>
    		<link>core-values-code-of-ethics</link>
    			<niveau2>
    				<titre>Item 1</titre>
    				<link>item-1</link>
    			</niveau2>
    			<niveau2>
    				<titre>Item 2</titre>
    				<link>item-2</link>
    					<niveau3>
    						<titre>Sub Item 1</titre>
    						<link>sub-item-1</link>
    					</niveau3>
    			</niveau2>
    	</niveau1>
    	<niveau1>
    		<titre>Contact</titre>
    		<link>contact</link>
    	</niveau1>
    </menu>
    Et voici mon début de php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    $menu = simplexml_load_file('menu.xml');
    echo '<ul>';
    foreach ($menu->niveau1 as $link){
    	echo '<li>';
    		echo '<a href="'.$link->link.'" class="info">'.$link->titre.'</a>';
    	if($menu->niveau2){
    		echo '<ul>';
    		foreach ($menu->niveau2 as $link2){
    			echo '<li>';
    				echo '<a href="'.$link2->link.'" class="info">'.$link2->titre.'</a>';
    			echo '</li>';
    		}
    		echo '</ul>';
    	}
    	echo '</li>';
    }
    echo '</ul>';
    J'affiche bien le niveau1 mais pas niveau2.

    Quelqu'un aurait une idée de boucle.

    Merci d'avance

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    C'est $link (nom peu judicieux d'ailleurs) qu'il faut réutiliser dans votre première itération :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if($menu->niveau2){
        echo '<ul>';
        foreach ($menu->niveau2 as $link2) {
    Devrait, je pense, être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset($link->niveau2)) {
        echo '<ul>';
        foreach ($link->niveau2 as $link2) {

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 114
    Points : 88
    Points
    88
    Par défaut
    Citation Envoyé par julp Voir le message
    C'est $link (nom peu judicieux d'ailleurs) qu'il faut réutiliser dans votre première itération :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if($menu->niveau2){
        echo '<ul>';
        foreach ($menu->niveau2 as $link2) {
    Devrait, je pense, être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset($link->niveau2)) {
        echo '<ul>';
        foreach ($link->niveau2 as $link2) {
    Et la lumière fut !

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo