Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bouton ajout select liés à une base de données

Sujet résolu
    22 février 2018 à 2:35:12

    Bonjour,

    Je suis en train d'essayer de réaliser un site permettant la gestions de séances de sports avec des clients, leurs abonnements, etc.

    Actuellement j'en suis à la création d'un formulaire permettant l'ajout d'abonnements à la base de données. Les clients sont déjà renseignés dans la base et donc je les récupère dans une liste déroulante. Jusque là pas de problème, cependant un abonnement peut réunir plusieurs clients ainsi j'aimerais pouvoir ajouter des listes déroulantes à l'appui d'un bouton afin de pouvoir sélectionner plusieurs clients.

    J'ai vu quelques scripts JS qui semblaient intéressants, cependant aucun n'utilisait les valeurs de la base de données pour remplir les <option>.

    <?php
    	echo "<form method='post' action='abonnements.php'>
    		<input type='date' name='dateSouscription'>";
    		
    		$rqt_client = "SELECT CL_id, CL_nom, CL_prenom FROM client ORDER BY CL_nom, CL_prenom";
    							
    		$res_client = mysqli_query($bd, $rqt_client) or fd_bd_erreur($bd, $rqt_client);
    		
    		echo "<select name='client'>";
    		while($enr_client = mysqli_fetch_assoc($res_client))
    		{
    			echo "<option value=$enr_client[CL_id]> $enr_client[CL_nom] $enr_client[CL_prenom] </option>";
    		}
    		echo "</select>
    		<input type='submit'>";
    		
    	echo "</form>";
    ?>

    Pour l'instant j'en suis là et je n'ai pas vraiment d'idée pour réaliser ceci.

    Merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      22 février 2018 à 3:19:07

      Bonjour,

      J'ai vu quelques scripts JS qui semblaient intéressants, cependant aucun n'utilisait les valeurs de la base de données pour remplir les < option>

      Dans ce cas comment fonctionne t'il ? 

      Logiquement il ne devrait pas y avoir trop de problème pour adapter les système de ces scripts pour qu'il marche dans ton cas :)

      • Partager sur Facebook
      • Partager sur Twitter

      Développeur PHP / Symfony en Freelance

        22 février 2018 à 3:50:09

        romain-valin a écrit:

        Bonjour,

        J'ai vu quelques scripts JS qui semblaient intéressants, cependant aucun n'utilisait les valeurs de la base de données pour remplir les < option>

        Dans ce cas comment fonctionne t'il ? 

        Logiquement il ne devrait pas y avoir trop de problème pour adapter les système de ces scripts pour qu'il marche dans ton cas :)

        C'était des scripts qui réalisaient simplement des document.createElement et remplissaient ensuite les éléments, le problèmes c'est que je peux pas directement mettre des choses du genre 
        element.innerHTML = "<?php //ma boucle de lecture de la requête pour remplir le select ?>";

        Si ?

        EDIT :

        Bon en fait j'ai trouvé une solution qui permet de dupliquer des éléments en javascript simplement, voilà donc mon code :

        <?php
        	echo "<form method='post' action='abonnements.php'>
        		<input type='date' name='dateSouscription'>";
        		
        		$rqt_client = "SELECT CL_id, CL_nom, CL_prenom FROM client ORDER BY CL_nom, CL_prenom";
        							
        		$res_client = mysqli_query($bd, $rqt_client) or fd_bd_erreur($bd, $rqt_client);
        		
        		echo "<div id='zoneListesClients'>
        			<select id='listeClients' name='client[]'>";
        		while($enr_client = mysqli_fetch_assoc($res_client))
        		{
        			echo "<option value=$enr_client[CL_id]> $enr_client[CL_nom] $enr_client[CL_prenom] </option>";
        		}
        		echo "</select>
        		</div>
        
        		<input type='button' value='+' onClick = 'addListeClients()'>
        		<input type='submit'>
        		
        	</form>";
        ?>	
        function addListeClients()
        {
        	var elmnt = document.getElementById("listeClients");
        	var cln = elmnt.cloneNode(true);
        	document.getElementById("zoneListesClients").appendChild(cln);
        }




        Et ça marche plutôt bien.

        Je n'ai pas encore essayé de récupérer le formulaire mais à noté qu'en mettant name=client[] on récupère directement un tableau.

        Ceci dit, dans mon cas ça fonctionne bien vu qu'il s'agit simplement de dupliquer mais si on voulait ajouter un élément différent lié à la base de données là je ne sais pas comment il faudrait s'y prendre.

        J'aurais une autre question, est-ce qu'utiliser une même page php pour afficher un formulaire, le récupérer et afficher ces mêmes données de la base est une pratique correcte ?



        -
        Edité par ghysal 22 février 2018 à 4:40:07

        • Partager sur Facebook
        • Partager sur Twitter

        Bouton ajout select liés à une base de données

        × 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