gestion liste déroulante multichoix
Bonjour
Tout d'abord bonne année 2021 à tous et toutes ainsi qu'à la team qui fait un super boulot (en espérant la disparition de cette s**********ie de virus !!!)
Voilà j'ai une liste déroulante multichoix ou les personnes choisissent plusieurs candidats
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
<select name="lst_candidats[]" size="6" multiple required="true">
<option value="">--Choisir son candidat--</option>
<option value="">------------------------</option>
<?php
while ($r3 = $req3->fetch())
{
$candidatId=$r3['candidatId'];
$candidatNom=$r3['candidatNom'];
$candidatPrenom=$r3['candidatPrenom'];
$candidatSortant=$r3['candidatSortant'];
if($candidatSortant==1){
$sortant="(Sortant)";
}else{
$sortant="";
}
?>
<option value="<?php echo $r3['candidatId']; ?>"><?php echo $r3['candidatNom']." ".$r3['candidatPrenom']." ".$sortant;?></option>
<?php
}
?>
</select> |
Voici ma mon code de traitement dans une autre page php et ce sont les choix je voudrais insérer dans ma table resultat et donc récupérer tous les candidatId selectionnés pour les inserer dans ma table résultats
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
if(isset($_POST['lst_candidats']) && !empty($_POST['lst_candidats']))
{//debut if insertion table resultat
$tab_candidat = $_POST['lst_candidats'];
print_r($tab_candidat)."<br>" ;
// Construction de la requête d'insertion
$sql4 = "
INSERT INTO gr_resultats
(resultatCandidatId,resultatDate,resultatNotes,resultatFlag)
VALUES
(:resultatCandidatId,:resultatDate,:resultatNotes,:resultatFlag)
";
// Préparation de la requête (en utilisant la connexion $db supposée définie auparavant et ailleurs
$req4 = $db->prepare($sql4);
// Exécution de la requête autant de fois qu'il y a de choix de la part de l'utilisateur dont l'identifiant est valorisé par ailleurs
foreach($tab_candidat as $candidat)
print_r($candidat)."candidat"."<br>" ;
{ echo $candidat."toto5"."<br>";
$req4->bindValue(':resultatCandidatId', $candidat, PDO::PARAM_INT);
$req4->bindValue(':resultatDate', $date_jour, PDO::PARAM_STR);
$req4->bindValue(':resultatNotes', NULL, PDO::PARAM_NULL);
$req4->bindValue(':resultatFlag', 0, PDO::PARAM_BOOL);
echo "toto"."<br>";
$req4->execute();
echo "toto1"."<br>";
}
}// fin if insertion dans table resultat |
et voici le résultat de mes différents print et echo
Array ( [0] => 1 [1] => 2 [2] => 3 ) 1233toto5
toto
toto1
Donc je récupère bien mes choix 1,2 et 3 : par contre dans le foreach je n'ai que l'id 3 et donc je n'insere que l'id 3 dans ma table resultat et pas les id 1 et 2
Je n'arrive pas à voir ou est mon erreur
En espérant avoir été clair
Cordialement