Boucle for pour un contenu php

Bonjour,

J'essaye de faire une boucle for avec un contenu html.. Mais je galère un peu !
voici mon code


for ($var = 1; $var <= 10; $var++)
    
    {
    
       echo '<ul>'
       variable $var is now = ' . $x . '
        <li class="itmList">
           <a href="" attr-id="HPAMID065FS0005U">
                <div class="placeholder">
            
                <img src="<?php echo $photo1; ?>" alt="nom de lo'objet : libelé">
                </div>
                <h2><?php echo $nom1; ?></h2>
                <p class="description"><?php echo $description1; ?></p>
                <p class="location">Location : <?php echo $location1; ?></p>
            </a>
        </li>  
    '</ul>'
    
    }



Bon déjà je dois avoir des problèmes de syntaxes .....
Les variable $nom1 , $description1, $location1 et $photo1 me récupère des données XML; Sans la boucle , cela fonctionne, mais il arrive que pour une même page xml, j'ai justement plusieurs noms, descriptions etc... donc je voudrai que tant qu'il y a des donées de ce type dans mon xml, il faut les afficher sous forme de liste...

Vous pouvez m'aider ?

Merci :)

11 réponses

  • Votes
  • Date
  • Date décroissante

  1. Tu mélanges php et html dans ton code, voilà une version qui marche.
    <?php

    for ($i = 1; $i <= 10; $i++)
    {

    echo '<ul>';
    echo "variable $i is now = ' . $x . '";
    echo " <li class='tmList'>
    <a href='' attr-id='HPAMID065FS0005U'>
    <div class='placeholder'>

    <img src='$photo1' alt='nom de l\'objet : libelé'>
    </div>
    <h2>$nom1</h2>
    <p class='description'>$description1</p>
    <p class='location'>Location : $location1</p>
    </a>
    </li>
    </ul>";
    }

    ?>
    1. Je ne suis pas un expert en php, mais pourquoi de ne pas faire une boucle while ?
      1. Bonjour Nana !

        Pourrais-tu modifier ton post de manière à que le code s'affiche en entier ? [Utilise les balises < code > et < / code >]
        Merci d'avance.

        Cdt,
        Imagine.

        The Gift Of the Godess'.
        1. Bonjour imagine

          Si je mets les balises code , il n'y a plus les couleurs dans le code... et il y a toujours " lire la suite "
          1. Mince.

            Bien, pourrais-tu me l'envoyer par MP ? Parce que je n'ai pas de bouton "lire la suite".
            Néanmoins je suis d'accord avec Dj, une boucle while serait - à mon sens - plus appropriée.

            Cdt,
            Imagine.
            1. Ok Imagine, attend je m'inscris sinon je ne peux pas t'envoyer de message privée !

              Merci à toi :)
              1. je me suis inscrite donc je suis nanaval31 maintenant :)
                oui tu as raison peut être que ça cerait plus adapté
                J'essaye et je vous montre
                merci dj
                1. Qalo a été plus rapide que moi. ^^
                  Mais à vue de nez, je pense que cela devrait être fonctionnel en effet.

                  Tu avais plusieurs erreurs, notamment des erreurs classiques telles que de ne pas différencier l'usage des " et des ' lorsque tu utilises Echo/Print, ou encore ne pas mettre de ";" à la fin de chaque instruction. ^^

                  Bonne chance pour la suite!

                  Imagine.
                  1. Salut Qalo, merci pour ton aide
                    Je mélange effectvement php et html, j'ai du mal avec les côte
                    J'ai testé ton code, et j'ai une erreur sur la ligne
                    echo "variable $i is now = ' . $x . '";


                    De plus, au lieu de m'ajouter les deux différents nom description et location, il me répète le même sur toute la page .......
                    1. Re-Bonjour Nana,

                      Dis-moi, y a-t-il un nombre de données spécifiques? Où les données sont-elles rentrées par l'utilisateur?
                      Parce que je viens de penser à une syntaxe avec un foreach. Qui est plus difficile à utiliser mais qui au final est beaucoup plus pratique.

                      Je te donne un exemple de code que j'ai mis au point il y a quelques jours.

                      Code HTML :

                      <ul id="list2" name="acces">
                      <li><input type="checkbox" name="entity[]" value="CA"/>CA</li>
                      <li><input type="checkbox" name="entity[]" value="DCE"/>DCE</li>
                      <li><input type="checkbox" name="entity[]" value="DSB"/>DSB</li>
                      <li><input type="checkbox" name="entity[]" value="DSR"/>DSR</li>
                      <li><input type="checkbox" name="entity[]" value="DSS"/>DSS</li>
                      <li><input type="checkbox" name="entity[]" value="DT"/>DT</li>
                      <li><input type="checkbox" name="entity[]" value="HSE"/>HSE</li>
                      <br/>
                      <br/>
                      <label for="fonction">Fonction :<br/></label><input type="text" name="fonction"/><br/>
                      <label for="Bureau">Bureau si connu :<br/></label><input type="text" name="Bureau"/>

                      </ul>

                      Et en PHP on aura :

                      foreach ($_POST['entity'] as $acces)
                      {
                      $message .="Le nouvel arrivant aura accès à $acces .\r\n\r\n";
                      }

                      Petite explication : Dans le HTML, j'ai crée un tableau dans un formulaire qui s'appelle Entity[] (qui s'imcrémente tout seul) . Ensuite via le foreach, on peut récuperer chaque entrée et les ressortir ailleurs.
                      $_POST sert à récuperer ces données, car le formulaire utilise la methode POST.
                      "foreach ($_POST['entity'] as $acces" :> $acces est une variable créée à ce moment précis, elle n'est pas déclarée dans le code php avant.
                      Tu l'auras compris, ces infos sont transmises par mail. ($message .=) Mais tu peux très bien remplacer ceci par print " Le nouvel arrivant aura accès à $acces </br>" .

                      Imagine.

                      The Gift Of the Godess'.
                      1. Re bonjour imagine

                        Merci pour tes explications très détaillées.
                        En fait , j'ai fait un formulaire avec une liste déroulante où l'utilisateur choisit une ville. Quand il choisit une ville, il tombe sur un code xml , et c'est ce code xml que j'ai parcouru et affiché avec mes variable $nom1, $description1 etc...
                        Et pour une ville, j'ai deux noms différents, deux descriptions différents etc...
                        Avec mon simple code, il ne m'affiche qu'un seul nom, et la description qui va avec mais pas l'autre nom et sa description adequate. Voilà pourquoi j'ai besoin d'une boucle, .

                        Merci pour l'idée de foreach , je vais essayer de voir ça :)
                        Je posterai mon code ensuite !