CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP] Formulaire modif plusieurs select

Narkan
Narkan
Niveau 8
28 mars 2013 à 09:28:16

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 : https://image.noelshack.com/fichiers/2013/13/1364458504-formjv.png

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... https://image.noelshack.com/fichiers/2013/13/1364458624-modif.png

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 : https://image.noelshack.com/fichiers/2013/13/1364458686-bdd.png

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 ! =)

_skip
_skip
Niveau 10
28 mars 2013 à 12:07:31

Je sais que c'est pas la réponse que tu voulais mais soit :

Autant te le dire, tu n'auras jamais de réponse en balançant ton code comme ça en vrac sur un forum.

1) Lorsque tu présentes du code, utilises pastebin pour qu'il y ait un formatage
2) L'autre truc c'est que tu n'isoles pas assez le problème. On ne sait pas en lisant ton code si c'est une histoire d'affichage ou de requête qui retourne pas le résultat, et contrairement à toi on peut pas le tester.

Donc première chose, il faut que tu réorganises ton code. Là actuellement tu mixes du html, des requêtes SQL et plein de bordel.
Il faut s'habituer à séparer les 2 choses. Commence par une en-tête en code PHP dans laquelle tu extraits les données dont tu as besoin dans des **variables**.

Soit
1) la liste des activités complète
2) la liste des activités sélectionnée du membre

Ensuite tu utilises ces variables pour générer ton html, tout de suite ça va sembler beaucoup plus lisible.
Sans compter que tu pourras faire des "print_r" pour vérifier que les données extraites sont bien conformes à la réalité.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment