Problème de récupération d'identifiant PHP
RésoluHmd3D2Y -
Bonjour,
Je suis actuellement en train de réaliser un site/application qui permet de gérer une équipe de volley (il s'agit d'un projet de cours) mais je viens de rencontrer un problème dont je n'arrive vraiment pas à le cerner.
Je souhaite pouvoir afficher une liste de matchs prévus et afficher une liste de joueurs potentiels pouvant participer à un match sélectionné. Mais pour ça je dois au préalable afficher seulement les joueurs qui ne sont pas déjà inscrits pour ce match. j'avais donc pensé à récupérer l'identifiant de mon match pour l'utiliser en conséquence mais je n'y arrive pas.
voici mon code :
<?php $server = "localhost"; $login = "root"; $mdp = ""; $db = "projet_php"; try { $bdco = new PDO("mysql:host=$server;dbname=$db",$login,$mdp); $bdco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo 'Erreur de connexion : ' . $e->getMessage(); } $repertoire = "projet-photos/"; ?> <form method="POST" action="ajouterJoueursMatch.php" onsubmit="return verifierSelectionJoueurs();"> <label for="match">Match :</label> <select name="match" id="match"> <?php // Récupération de la liste des matchs $stmt = $bdco->prepare('SELECT * FROM matchs'); $stmt->execute(); while ($row = $stmt->fetch()) { echo '<option value="' . $row['id_Match'] . '">' . $row['lieu_match'] . ' - ' . $row['date_match'] . ' - ' . $row['heure_match'] . '</option>'; } ?> </select> <br> <label for="joueurs">Joueurs :</label> <ul> <?php // Récupération de l'identifiant du match sélectionné $idMatch = intval($_POST["match"]); // Récupération de la liste des joueurs qui ne sont pas déjà assignés au match $stmt = $bdco->prepare('SELECT * FROM joueur WHERE numero_de_licence NOT IN (SELECT numero_de_licence FROM participer WHERE id_Match = ?)'); $stmt->execute([$idMatch]); while ($Joueur = $stmt->fetch()) { echo '<li>'; echo '<input type="checkbox" name="joueurs[]" value="' . $Joueur['numero_de_licence'] . '">'; echo $Joueur['Prenom'] . ' ' . $Joueur['Nom']; echo '</li>'; } ?> </ul> <input type="submit" value="Ajouter"> </form> <script> function verifierSelectionJoueurs() { var boutonsCheckBox = document.getElementsByTagName('input'); var nbJoueursSelectionnes = 0; for (var i = 0; i < boutonsCheckBox.length; i++) { if (boutonsCheckBox[i].checked && boutonsCheckBox[i].type == 'checkbox') { nbJoueursSelectionnes++; } } if (nbJoueursSelectionnes != 5 || nbJoueursSelectionnes2 != 5) { // Affichage d'une pop-up d'erreur alert('Veuillez vérifiez que vous ayez bien rempli tous les champs et que vous ayez bien sélectionné 5 joueurs'); return false; } else { return true; } } </script>
En soi mon code fonctionne correctement mais je n'arrive pas récupérer l'identifiant d'un match sélectionné et la mettre dans une variable.
De plus l'erreur suivant s'affiche :
Si quelqu'un pouvait m'aider ce serait génial, merci.
- Problème de récupération d'identifiant PHP
- Identifiant et mot de passe - Guide
- Easy php - Télécharger - Divers Web & Internet
- Convertisseur récupération de texte - Guide
- Freewifi secure identifiant - Forum Téléphones & tablettes Android
- Identifiant pole emploi - Forum Services en ligne
3 réponses
En relisant ton code, j'ai l'impression que tu aimerais avoir la liste des joueurs qui ne sont pas déjà inscrits dans un match lors du choix du match en question. (et donc AVANT de SUBMIT ton formulaire)
Pour ça, tu peux utiliser de l'ajax. (soit en jquery $.ajax , soit via la fonction javascript fetch() )
bonjour,
La première chose à faire, c'est d'examiner ce que contient $_POST.
Cela peut se faire en utilisant var_dump().
Bonjour
Commence par ça
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
.
J'avais déjà réfléchi à cela et avais fait ça :
<?php // Récupération de l'identifiant du match sélectionné if (isset($_POST["match"])) { $idMatch = intval($_POST["match"]); } else { $idMatch = 1; } // Récupération de la liste des joueurs qui ne sont pas déjà assignés au match $stmt = $bdco->prepare('SELECT * FROM joueur WHERE numero_de_licence NOT IN (SELECT numero_de_licence FROM participer WHERE id_Match = ?)'); $stmt->execute([$idMatch]); while ($Joueur = $stmt->fetch()) { echo '<li>'; echo '<input type="checkbox" name="joueurs[]" value="' . $Joueur['numero_de_licence'] . '">'; echo $Joueur['Prenom'] . ' ' . $Joueur['Nom']; echo '</li>'; } ?>
Mais j'ai constaté que le problème était que le $_POST ne récupérait pas l'identifiant de ma sélection et resté vide
En effet je me suis rendu compte que pour retourner l'identifiant de ma sélection je devais submit et faire une redirection direct sur ma page mais j'ai décidé de faire autrement et ça à l'air de bien fonctionner.
merci d'avoir mis le doigt sur mon problème :)