Salut !
Je code actuellement une application pour une association, lui permettant de gérer ses adhérents et les activités auxquelles ils participent.
Je veux faire un formulaire comme celui de JV.Com quand on modifie les machines qu'on possède :
En gros les adhérents peuvent participer à plusieurs activités annuelles. Dans mon formulaire de modification je veux pouvoir afficher 5 listes select et pour chacune d'entre elles sélectionner par défaut les activités auxquelles l'adhérent participe déjà (et laisser les autres vides).
Sauf que mon formulaire ne sélectionne que la même activité pour toutes les listes alors que l'adhérent testé participe à 3 activités différentes...
Je vous met le schéma de la BDD qui intervient et la fonction qui affiche le formulaire et récupère les données de la BDD :
public function AfficheFormulaireActiviteAnnuelle($idadherent)
{
for($i=1;$i<6;$i++)
{
//On affiche 5 formulaires
echo"<tr> <td> Activite ".$i."</td> <td><select name='selectactivite".$i."' id='selectactivite".$i."'>";
// On récupère toutes les activités annuelles
$reqA=$this->_db->prepare("SELECT * FROM activite WHERE type='annuelle'");
$reqA->execute();
// On récupère les activités annuelles où participe l'adhérent
$req=$this->_db->prepare("SELECT *
FROM participer p
INNER JOIN activite ac
ON ac.id_activite = p.id_activite
AND p.id_adherent='$idadherent'
AND ac.type='annuelle'");
$req->execute();
// On compte le nombre d'activités annuelles auxquelles l'adhérent participe déjà
$reqCount=$this->_db->prepare("SELECT COUNT(*) FROM participer p
INNER JOIN activite ac
ON ac.id_activite = p.id_activite
AND p.id_adherent='$idadherent'
AND ac.type='annuelle'");
$reqCount->execute();
$ligneCount=$reqCount->fetchColumn();
// Pour chaque ligne je regarde les activités qu'a mon personnage
// Si il y participe, l'activité est sélectionnée par défaut.
for($j=0;$j<=$ligneCount;$j++)
{
// On passe en revue toutes les activités
while($ligneA=$reqA->fetch())
{
$ligne=$req->fetch();
// Puis on vérifie si l'adhérent y participe, si oui on selectionne par défaut
echo"<option value='".$ligneA['id_activite']."'";
if($ligneA['id_activite']==$ligne['id_activite'])
{echo "selected"; }
echo">".$ligneA['activite']."
</option>";
}
// Sinon, on laisse la valeur "Aucune" par défaut
echo"<option value=''";if($ligneA['id_activite']!=$ligne['id_ac
tivite'])
{ echo "selected"; }echo"> Aucune </option>
</select>
</td>
</tr>";
}
}
}
Voila, merci d'avance pour votre aide ! =)