Partage
  • Partager sur Facebook
  • Partager sur Twitter

Un formulaire dynamique

    28 août 2016 à 10:06:42

    Bonjour,

    J'ai un site qui gère des compétitions de course à pied.

    Dans ma bdd j'ai une table compétitions (compétition), une table course (courses de la compétitions et une table résultat (résultat de la course).

    Quand j'ajoute un résultat (dans un formulaire), je spécifie d'abord la compétitions (dans le champ compétition), puis la course dans le champ course. Sauf que ma page est en php, du coup dans le champ compétition j'affiche toutes les compétitions (logique) et dans la course j'affiche toutes les courses que j'ai récupérer dans la bdd.

    Mais j'aimerais afficher uniquement les courses de la compétitions que j'ai entré dans le champ au dessus. Je pense qu'il faut du js, mais je ne sais pas comment faire.

    Edit : Pour faire le lien dans ma bdd entre competitions et courses, dans la table course, j'ai un attribut id_c qui correspond à l'id de la competition

    Voici le code de ma page pour l'instant :

    <?php session_start(); ?>
    
    <!DOCTYPE html>
    
    <html>
       <head>
       </head>
    
        <body>
            <?php include("../fonction/fonction.php"); ?>
         <section>
                    <form method='post' action='rproc.php' enctype='multipart/form-data'>
                        <?php
                           
    
                   $bdd = connexion();
    
                            
    
                   /* Selection de la compétition */
                   $req = $bdd->query('SELECT nom FROM competitions');
                   echo '<p><label for=\'competition\'>Compétition : </label>';
                   echo '<select name=\'competition\' id=\'competition\'>';
                   while($data = $req->fetch())
                   echo '<option value=\'' . $data['nom'] . '\'>' . $data['nom'] . '</option>';
    
                  echo '</select></p>';
    
                /* Selection de la course */
               $req = $bdd->query('SELECT nom FROM course');
               echo '<p><label for=\'course\'>Course : </label>';
                echo '<select name=\'course\' id=\'course\'>';
                while($data = $req->fetch())
                    echo '<option value=\'' . $data['nom'] . '\'>' . $data['nom'] . '</option>';
    
                    echo '</select></p>';
                    $req->closeCursor();
                    ?>
                      
                    <p><input type='submit' value='Envoyer' /></p>
                    </form>
                    
                </section>
    
     
            
        </body>
    </html>
    

    C'est le bloc l-29 - l-38 qui faudrait changer

    -
    Edité par sdzfermat 28 août 2016 à 10:13:17

    • Partager sur Facebook
    • Partager sur Twitter
      28 août 2016 à 16:39:43

      Salut,

      Oui tu va avoir besoin de Javascript pour faire ce que tu souhaite.
      Il y a plusieurs facon de faire.
      Premierement tu n'affiche que les courses correspondant a la competition selectioner par default a l'ouverture
      de ta page.
      Deuxiement tu peut faire  un select cacher de courses selon les competitions.
      Par exemple si tu as 10 competition 1 select visible pour la course correspondant a la competition par default
      et 9 select cacher pour les courses correspondant aux autres competitions.

      autre moyen c'est de garder en memoire local la liste des courses par competitions et de modifier le contenu du select des courses par javascript.
      chaque fois que l'on change de competition.

      J'espere que ca t'aide un peu si tu galere pour le code ecrit ce que tu as fait et on t'orientera

      A bientot
      Astro 
      • Partager sur Facebook
      • Partager sur Twitter
        28 août 2016 à 16:44:40

        Ok, merci.

        Je mets un pouce bleu à celui qui me donne le code !

        • Partager sur Facebook
        • Partager sur Twitter
          29 août 2016 à 13:37:51

          Salut,

          On est pas ici pour faire ton boulot, mais pour t'orienter alors bosse!

          A bientot
          Astro
          • Partager sur Facebook
          • Partager sur Twitter
            29 août 2016 à 13:43:42

            pourquoi tu ne rajoutes pas ORDER BY id DESC LIMIT 1 a ta requete SQL pour ne récupérer que la dernière course enregistrée ?
            • Partager sur Facebook
            • Partager sur Twitter
            Fais pas gaffe à moi, je ne suis qu'une signature !
              29 août 2016 à 14:50:50

              unlytill a écrit:

              pourquoi tu ne rajoutes pas ORDER BY id DESC LIMIT 1 a ta requete SQL pour ne récupérer que la dernière course enregistrée ?


              Parce que les courses ne sont pas forcément dans le bon ordre. Et il peut y avoir plusieurs course par compétitions (5km et 10km par exemple pour une seule manifestation).

              -
              Edité par sdzfermat 29 août 2016 à 14:51:17

              • Partager sur Facebook
              • Partager sur Twitter

              Un formulaire 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