Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment faire un modele de page dynamique ?

Sujet résolu
    1 mars 2021 à 16:53:50

    Bonjour à tous,


    Je débute en PHP et je voudrais faire un modèle de page dynamique.

    Je m'explique plus en détails parce que j'ai moi même du mal à exprimer ce que je veux faire. Je voudrais créer une page dynamique "destination" qui ira chercher les éléments en base de données. 

    La page est composée d'un titre (le pays), d'un texte (descriptif du pays) et d'un lien vers une image (photo du pays). Du coup je sais pas si je dois créer une page .php pour chaque pays, et comment insérer dynamiquement le titre, texte et lien d'image correspondant à chaque destination.

    J'espère déjà que vous comprendrez ce que je recherche à faire; je cherche bien évidemment pas de code mais des conseils ou des tutos pour m'aider à faire ça.

    Merci à tous

    • Partager sur Facebook
    • Partager sur Twitter
      1 mars 2021 à 18:59:33

      Bonjour, perso, je ferais une page html et un script js/ajax qui ferait appel à une page "controleur" en PHP qui retournerait les infos selon l'appel.
      • Partager sur Facebook
      • Partager sur Twitter
        1 mars 2021 à 21:44:18

        Merci pour ta réponse. Ça te dérange de me donner un peu plus de détails stp ? Je débute faut y aller doucement 😏
        • Partager sur Facebook
        • Partager sur Twitter
          1 mars 2021 à 23:09:14

          si tu maitrises un peu html/css, regardes du coté de javascript(jquery peut simplifier des choses), puis de php/pdo (sql pour la base de données), puis de la techno ajax

          • Partager sur Facebook
          • Partager sur Twitter
            2 mars 2021 à 0:01:51

            Bonjour,

            >> Du coup je sais pas si je dois créer une page .php pour chaque pays,

            Non une page unique en .php qui présente les informations issue de la base.

            Tu n’indiques pas quel est l’élément qui fait varier les informations récupérée en base. Est-ce une liste de lien de pays sur lequel tu cliques, ou une liste de formulaire (balise <select>) ou autre ? Bref comment sont présentés les informations de départ.

            Le choix de techno (AJAX ou full PHP) conditionne le rechargement de page ou non.

            bxdfr Donne de bon conseil mais peut-être un peu trop avancer pour un débutant. Je présume que tu sais récupérer une donnée en base et l’afficher. Si ce n’est pas le cas go vers le cours PHP de ce site. (Lien en fin de message)

            Si tu sais faire cela, ou est la difficulté pour toi ? Plusieurs solutions sont possibles. Par exemple tu peux passer l’id du pays en GET de la page destination.php, ou passer par les sessions si tu ne veux pas de paramètre GET. Ou un formulaire de recherche qui interroge la base; Ou passer par AJAX ce qui évite un rechargement de la page.

            Bref sans connaitre ton niveau en PHP, et sans code, pas facile de dire comment faire puisque plusieurs solutions existent pour « un modèle de page dynamique ».

            As-tu un début de code à présenter ?

            Liens conseillés

            • Partager sur Facebook
            • Partager sur Twitter
              2 mars 2021 à 9:46:02

              Tout d'abord merci énormément pour votre aide. 

              La page destinations est composée de plusieurs liens qui envoient vers la page du pays; du coup un lien de ce style peut faire l'affaire ? 

                                          <a href="<?php echo "/destinations.php?id=".$id_destination."" ?>" class="stretched-link">
              

              Voici le bout de code en questions :

              <div class="col-md-9 bg-white gallery">
                                  <h1>Les destinations</h1>
                                  <div class="row">
                                      <div class="col-md-4">
                                          <a href="" class="stretched-link">
                                          <h2>Afrique du Sud</h2>
                                          <img class="img-fluid" src="img/destinations/afriquesud-header.jpg" />
                                          </a>
                                      </div>
                                      <div class="col-md-4">
                                          <a href="" class="stretched-link">
                                          <h2>Allemagne</h2>
                                          <img class="img-fluid" src="img/destinations/allemagne-header.jpg" />
                                          </a>
                                      </div>
                                      <div class="col-md-4">
                                          <a href="" class="stretched-link">
                                          <h2>Angleterre</h2>
                                          <img class="img-fluid" src="img/destinations/angleterre-header.jpg" />
                                          </a>
                                      </div>
                                  </div>
              </div>


              Sinon tu me parles d'une page unique en .php (c'est bien ce que je voulais faire à la base) mais je vois pas comment générer les pages automatiquement.  J'ai donc ma page destinations.php avec tous les liens mais comment obtenir la page france, irlande, espagne... ?

              En tout cas je vous remercie encore de vous être penché sur mon problème.

              • Partager sur Facebook
              • Partager sur Twitter
                2 mars 2021 à 20:30:44

                Salut, comment obtiens tu le pays en question? un lien? et tes données, elles sont stockées ou/comment?

                si tu as un BDD disons pour faire simple, qui contient: id | pays | descriptif

                et que ton lien est du genre:

                <a href="<?php echo "/destinations.php?id=".$id_destination."" ?>" class="stretched-link">
                


                il ne te reste qu'à faire un select * from pays where id = $id_destination // ATTENTION CECI EST FAUX C'EST POUR LA METHODE IL FAUT PREPARER TES REQUETES

                puis dans ta page:

                <img src="/img/pays/'.$result['pays'].'.jpg" />
                
                <div id="desc">'.$result['descriptif'].'</div>

                :)


                • Partager sur Facebook
                • Partager sur Twitter
                  2 mars 2021 à 20:44:43

                  Merci beaucoup Ptit Rat,

                  Oui j'avais pas précisé les éléments de ma base. J'ai une table "destinations" avec les champs : 
                  - id (en auto-increment)
                  - titre (le pays)
                  - texte (descriptif du pays)
                  - urlimage (lien vers la photo du pays)

                  Je pense avoir capté pour intégrer les éléments à ma page; avec cette requete je peux récupérer tous les éléments de ma table 
                  $req = $bdd->query('SELECT * FROM destinations');
                  
                  Voici le code mis à jour :
                  <div class="col-md-9 bg-white gallery">
                                      <h1>Les destinations</h1>
                  
                                      <div class="row">
                                          <?php
                                          require_once 'connect-db.php';
                  
                                          $req = $bdd->query('SELECT * FROM destinations');
                  
                  
                                          while ($donnees = $req->fetch()) {
                                              $id = $donnees['id_dest'];
                                              $titre = $donnees['titre_dest'];
                                              $titre_min = strtolower(str_replace(' ','-',str_replace(['é','è','ê'],'e',$donnees['titre_dest'])));
                                              $descriptif = $donnees['texte_dest'];
                                              $image = $donnees['image_dest'];
                                              ?>
                  
                                              <div class="col-md-4 mt-4">
                                                  <a href="destinations/<?= $titre_min?>.php" class="stretched-link">
                                                      <h2><?= $titre ?></h2>
                                                      <img class="img-fluid" src="<?= $image ?>" />
                                                  </a>
                                              </div>
                                          <?php 
                                          }
                                          ?>
                                      </div>
                  
                                  <!--- FIN MAIN CONTENT ---->
                              </div>
                  
                  Du coup j'obtiens un lien du style http://localhost/voyager/destinations/afrique-du-sud.php
                  Mais ce qui reste très flou pour moi c'est comment créer les pages pour chaque pays.

                  -
                  Edité par papychulo 2 mars 2021 à 22:57:56

                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 mars 2021 à 11:21:00

                    Hello,

                    Quelqu'un peut m'aider svp ?

                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 mars 2021 à 21:05:41

                      Ptit Rat à déjà donné tous les éléments dont tu as besoin.

                      tu dois récupérer l'id du pays (apparement via GET['id']) pour faire une requête préparée (https://www.php.net/manual/fr/pdo.prepare.php) afin de n'avoir que les infos de ce pays.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        5 mars 2021 à 0:22:59

                        Alors il y a un truc qui m'échappe 😔 je comprends toujours pas comment seront créées les pages (france.php, espagne.php....). Merci pour le lien, c'est du langage objet du coup j'y connais rien va falloir que je m'y penché. Merci les gars
                        • Partager sur Facebook
                        • Partager sur Twitter
                          5 mars 2021 à 6:40:29

                          si tu veux quelquechose de dynamique tu n'auras pas une page par pays, mais une seule page avec un champs dans l'url qui correspond à l'id du pays.

                          pays.php?id=1 par exemple.du coup il ne faut pas utiliser query, mais prepare.

                          un truc du genre:

                          if (isset($_GET['id']){
                            $idPays=$_GET['id'];
                            $req = $bdd->prepare('SELECT * FROM destinations where id_dest=:id');
                            $req->bindParam(":id",$idPays);
                            $req->execute();
                            // tu peux garder le même code qu'avec ton query pour la suite
                          
                          }



                          • Partager sur Facebook
                          • Partager sur Twitter
                            5 mars 2021 à 9:18:39

                            Tu es au top merci énormément. Du coup, dis moi si je me trompe mais je pourrai avoir un URL pays.php?id=1&nom=france et modifier l'affichage avec l URL rewriting

                            -
                            Edité par papychulo 5 mars 2021 à 9:19:02

                            • Partager sur Facebook
                            • Partager sur Twitter

                            Comment faire un modele de page dynamique ?

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown