[RESOLU] SELECT et PHP

Eléphant du PHP | 133 Messages

09 févr. 2021, 19:11

Bonjour, sans doute que mon titre n'est pas assez explicite, alors voici mon problème.
dans un formulaire avec action $_POST j'ai un select avec une requête SQL à 3 colonnes.
Le formulaire me sert à saisir des noms de membres de différentes association de jeu.

La première colonne c'est mon ID donc mon value pour traitement dans un fichier "ajout.php" lorsque tout mon formulaire sera saisie.
La seconde colonne est la donnée affichée dans le formulaire qui correspond à l'association de jeux
La troisième est le type d’association. Je voudrais récupérer la valeur en colonne 3 pour la transmettre dans un input après traitement.
Le traitement consiste à ne récupérer que la première lettre qui peut être différente pour chaque membre.
Le but final étant de créer un identifiant unique, j'associerai plusieurs select et autre données pour créer l'identifiant. Ouf!
Mais ce que je fais ne marche pas!
Mon select avec le code SQL (le form n'apparait pas.

Code : Tout sélectionner

<select required name="Assos">; <option value="" selected disabled> Choix obligatoire </option> <?php // On inclut la connexion à la base try { include("../connect.php"); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } $resultat = $db->query('SELECT * FROM t_associations INNER JOIN t_type_assos ON t_associations.Id_Type_Assos = t_type_assos.Id_Type_Assos ORDER BY Nom_Long ASC'); while ($donnees = $resultat->fetch()) { echo '<option value="' . $donnees['Id_Assos'] . '">' . $donnees['Nom_Long'] . '" ' . $donnees['Type_Long'] . '</option>'; };
Ma variable

Code : Tout sélectionner

$identifiant = $donnees['Type_Long'];
Mon input

Code : Tout sélectionner

<input type="text" name="Identifiant" id="Identifiant" value="<?php echo $identifiant; ?>">
Voilà si vous pouvez m'aider. Merci

Mammouth du PHP | 2703 Messages

09 févr. 2021, 19:20

le form n'apparait pas.
il va falloir être plus précis pour que l'on puisse aider.
la page s'affiche dans le navigateur ?
quel est le code html généré par ce code php (ctrl + u pour voir la source) ?

Eléphant du PHP | 133 Messages

09 févr. 2021, 19:46

Oui la page s'affiche
En fait, il s'agit de récupérer dans une variable la valeur d'une colonne d'une SELECT après choix et de la retransmettre à un input[
Voici le code de la page

Code : Tout sélectionner

<!DOCTYPE HTML> <html lang="fr"> <head> <!--meta tags --> <meta charset="UTF-8" /> <!-- L Onglet --> <title>Fédération Française de Mölkky</title> <link rel="shortcut icon" href="../icone/Icone.webp" type="image/x-icon" /> <!-- Lien librairie --> <script src="../js/jquery.js"></script> <script src="../js/jquery.dataTables.min.js"></script> <script src="/js/app.js"></script> <script src="https://kit.fontawesome.com/2f952f51b8.js" crossorigin="anonymous"></script> <!-- CSS --> <link rel="stylesheet" href="../Lib/css/bootstrap.css" type="text/css" /> <link rel="stylesheet" href="../Lib/DataTableCSS/jquery.dataTables.min.css" type="text/css" /> <link rel="stylesheet" href="../css/formulaire.css" type="text/css" /> <link rel="stylesheet" href="../css/pagespecial.css" type="text/css" /> <link rel="stylesheet" href="../css/logo.css" type="text/css" /> <link rel="stylesheet" href="../css/btnperso.css" type="text/css" /><link rel="stylesheet" href="../css/menuConsole.css" type="text/css" /> <script src="/js/DatableJSON.js"></script> </head> <body> <nav class="navbar navbar-default navbar-expand-md fixed-top"> <!-- Le logo --> <a class="navbar-brand" href="#">FFMö</a> <a class="text-left" href="#"><img class="DimLogo" src="../LOGO/Mölkky.webp" alt="logo jeu MOLKKY" /></a> <button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#nav"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse justify-content-between" id="nav"> <ul class="navbar-nav"> <!-- Menu FFMö --> <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fas fa-tools"></i> Tables</a> <!-- bloc menu déroulant --> <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink"> <a class="dropdown-item" href="/F_Entite_Type/Type.php">Type associations</a> <a class="dropdown-item" href="/F_role/Role.php">Rôle</a> <a class="dropdown-item" href="/F_Droit/Droit.php">Droit</a> </div> </li> <!-- Menu associations --> <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fas fa-users"></i> Associations</a> <!-- bloc menu déroulant --> <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink"> <a class="dropdown-item" href="/F_Entite/Entite.php">Création Association</a> <a class="dropdown-item" href="/F_Bureau/FormMembre.PHP">Création Bureau</a> </div> </li> <!-- Menu IMO --> <li class="nav-item"> <a class="nav-link" href="../IMO.PHP"><i class="fas fa-globe"></i> IMO</a> </li> <!-- Menu EdF --> <li class="nav-item"> <a class="nav-link" href="../IMO.PHP"><i class="far fa-flag"></i> Eqt de France</a> </li> <!-- Menu MOLKKY --> <li class="nav-item"> <a class="nav-link" href="../MOLKKY.PHP">MÖLKKY</a> </li> <!-- Menu FEDE ETRANGERES --> <li class="nav-item"> <a class="nav-link" href="../Fédérations étrangères.PHP">Fédérations étrangères</a> </li> <!-- Menu REGLEMENTS --> <li class="nav-item"> <a class="nav-link" href="../Règlements.PHP">Règlements</a> </li> <!-- Menu SLACK --> <li class="nav-item"> <a class="nav-link" href="../SLACK.PHP">SLACK</a> </li> <!-- Menu TOURNOIS --> <li class="nav-item"> <a class="nav-link" href="../Tournois.PHP">Tournois</a> </li> </ul> <ul class="navbar-nav ml-auto"> <!-- Aligné à droite --> <li class="nav-item"> <a class="nav-link" href="../Index.PHP"><i class="fas fa-house-user"></i> Accueil Site</a> </li> </ul> </div> </nav><section> <!-- Formulaire modal d'ajout --> <div class="container-fluid"> <h1 class="TitreH1">Ajout d'un membre</h1> <form id="membre" method="POST" action="ajout.php" autocomplete="off"> <fieldset> <!--Coordonnées--> <legend>Association</legend> <div class="row mb-1"> <div class="col"> <!--Choix de l'association--> <label for="Assos">Choix de l'association:</label> <select required name="Assos">; <option value="" selected disabled> Choix obligatoire </option> <option value="9">Test suR PAGNY" Association</option><option value="10">Test suR PAGNY" Association</option> </select> </div> </div> </fieldset> <fieldset> <legend>Fonction</legend> <div class="row mb-1"> <div class="col"> <label for="Fonction">Fonction:</label> <select required name="Fonction">; <option value="" selected disabled> Choix obligatoire </option> <option value="1">Président</option> </select> </div> <div class="col"> <label for="Droit">Type de droit:</label> <select required name="Droit">; <option value="" selected disabled> Choix obligatoire </option> <option value="3">Fédération</option><option value="2">Membre</option><option value="1">Référent</option> </select> </div> </div> </fieldset> <fieldset> <!--Coordonnées--> <legend>Coordonnées du membre</legend> <div class="row mb-1"> <div class="col"> <label for="Nom">Nom:</label> <input type="text" name="Nom" id="Nom" placeholder="Obligatoire (taille 50)" maxlength="50" required> </div> <div class="col"> <label for="Prenom">Prénom:</label> <input type="text" name="Prenom" id="Prenom" placeholder="Obligatoire (taille 50)" maxlength="50" required> </div> </div> <div class="row mb-1"> <div class="col"> <label for="Mail">Mail:</label> <input type="email" name="email" id="Mail" placeholder="Obligatoire (taille 100)" maxlength="100" required> </div> <div class="col"> <label for="Tel">N° Téléphone:</label> <input type="text" name="Tel" id="Tel" placeholder="Obligatoire (taille 15)" maxlength="15" required> </div> </div> <div class="row mb-1"> <div class="col"> <label for="Adresse">N° et Rue:</label> <input type="text" name="Adresse" id="Adresse" placeholder="Optionnel (taille 150)" maxlength="150"> </div> <div class="col"> <label for="CodePostal">Code postal:</label> <input type="text" name="CodePostal" id="CodePostal" placeholder="Optionnel (taille 5)" maxlength="5"> </div> </div> <div class="row mb-1"> <div class="col"> <label for="Ville">Ville:</label> <input type="text" name="Ville" id="Ville" placeholder="Optionnel (taille 100)" maxlength="100"> </div> </div> </fieldset> <!--Fonction--> <fieldset> <legend>Accès</legend> <div class="row mb-1"> <div class="col"> <label for="Identifiant">Identifiant:</label> <input type="text" name="Identifiant" id="Identifiant" placeholder="Obligatoire (taille 15)" maxlength="150" required> </div> <div class="col"> <label for="Password">Mot de passe:</label> <input type="Password" name="Password" value="12345678" id="Password" placeholder="Obligatoire (taille 15)" maxlength="5" disabled> </div> </div> </fieldset> <button type="submit" NAME="Télécharger" class="btn btn-primary pull-right"><i class="fas fa-upload"></i> Envoyer</button> </form> </div> </section> <!-- jQuery first, Popper.js, Bootstrap JS --> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"> </script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"> </script> </body> </html>
Modifié en dernier par JAG11 le 09 févr. 2021, 21:35, modifié 1 fois.

Mammouth du PHP | 2703 Messages

09 févr. 2021, 19:57

$identifiant = $donnees['Type_Long'];
c'est dans ajout.php ? si oui, quel est le code de ajout.php ?

Eléphant du PHP | 133 Messages

09 févr. 2021, 21:34

Non c'est pas dans ajout.php
En fait pour faire simple, peut on recuperer la valeur de colonne N°3 d'un select?

Mammouth du PHP | 2703 Messages

09 févr. 2021, 21:40

<option value="9">Test suR PAGNY" Association</option>
on peut récupérer, ici la valeur 9.
pour récupérer plusieurs choses, il faut jouer avec la valeur du champ value, mettre par exemple value="9-xxxx"
et décomposer ensuite en php pour récupérer 9 et xxxx
la requête qui a permis d'obtenir "Association" peut aussi se faire dans la page de traitement de formulaire, donc je ne vois pas trop l’intérêt de se compliquer la vie à passer autre chose que l'id.