Salut,
Ca doit faire quelque chose comme ce qui suit, à peaufiner, j'ai pas testé si ça fonctionne, mais la logique devrait être bonne.
Bonjour,
Voila je rencontre un petit problème avec mon code.
J'aimerais qu'un utilisateur qui se connecte à son compte et qui souhaite modifier ses informations d'inscription tombe sur un formulaire prérempli avec les infos qu'il avait saisies avant, lors de son inscription et qui sont stockés en BDD.
J'arrive à bien gérer tous les champs (text, textarea, select, radio) sauf le cas des champs checkbox.
Prenons l'exemple des cases à cocher des pôles souhaités.
Mon formulaire d'inscription ressemble à ça :
Lien pour voir à quoi ressemble le formulaire d'inscription
Le HTML / PHP associé à cette section est celui-là :
Mon utilisateur choisit donc une liste de pôle. Ces infos sont stockées en BDD grâce à une table d'association "choisir" qui est entre la table "utilisateurs" et la table "choix_equipe_utils".
La table "choisir" est composée de deux colonnes "id_choix_equipe_util" et "id_utilisateur".
La table "choix_equipe_utils" est composée de deux colonnes "id_choix_equipe_util" et "nom_choix_equipe".
Au final, je sais donc toutes les cases qu'a cochées tel utilisateur, et donc à quel pôle cela correspond.
Voici ma fonction qui insère cela en BDD :
Ensuite, la personne se connecte à son compte, elle accède à son espace personnel où elle voit ce qu'elle a rempli comme infos dans la BDD. (Sur cette partie-là, je n'ai aucun problème, le nom des pôles que la personne a coché s'affiche correctement).
Pour cela, le code est le suivant :
Et le rendu de cette page qui ne sert que d'affichage et d'information est le suivant :
Lien pour voir à quoi ressemble l'affichage simple des infos
Puis, cette personne veux changer des infos, elle clique sur le bouton de modification, et là, le même formulaire que celui d'inscription s'affiche, mais il faut qu'il soit prérempli, et je n'arrive pas à faire en sorte que les cases à cocher correspondantes au pôle qu'il souhaite soient déjà précochées.
Et pour le moment, je n'arrive pas à le préremplir en fonction de la BDD.
Je suis quasi certaine que je cherche trop compliqué, alors que ça doit être relativement simple. Mais impossible de trouver comment faire. J'ai besoin de vos lumières s'il vous plait !
Merci d'avance !
Salut,
Ca doit faire quelque chose comme ce qui suit, à peaufiner, j'ai pas testé si ça fonctionne, mais la logique devrait être bonne.
Bonjour Balsacup et lolo3129,
Je vous remercie pour vos réponses.
Balsacup,
je comprends pour le stockage des pôles sous formes de variable. Je n'y avais tout simplement pas pensé.
Par contre, je ne comprends pas la syntaxe de te dernière ligne. Pourrais tu me l'expliquer un peu plus s'il te plait ?
Et comme dit Lolo3129, ne faudrait-il pas mettre checked="checked" pour cocher la case ?
Les 3 petits points c'est que j'avais la flemme d'écrire tout x)
$userChoiceIsChecked ? 'checked' : '' => condition ternaire, si le choix est associé à l'utilisateur, alors on check le champs, sinon rien.
Et comme dit Lolo3129, ne faudrait-il pas mettre checked="checked" pour cocher la case ?
checked ou checked="checked" revient à la même chose, par convention, en html, si un attribut n'a pas de valeur, on met le nom de l'attribut en valeur.
Pour les petits points, j'avais compris ! C'était la condition ternaire qui me faisait défaut (trop longtemps que je n'avais pas vu ça).
Et je ne savais pour pour le checked ou checked="checked".
Quand je teste avec ton code, de la façon suivante,
J'obtiens :
Test 1
Alors j'ai tenté ça :
Mais je n'obtiens que des cases à cocher vide et le nom de mes poles à côté, donc comme avant.
Du coup, en me basant sur ce que j'ai fait pour les boutons radio, et avec tes modifiations, j'ai tenté ça :
Là toutes les cases se coche ...
Donc, un petit var dump pour voir ce qu'il y a dans $userChoiceIsChecked :
Et là j'obtiens 4 jolis bool(false).
Test 2 avec var dump
Donc, $userChoiceIsChecked ne récupère pas de bonne infos.
Aurais tu une idée du pourquoi ?
Je ferais d'autres tests ce soir sur les variables.
Merci de ton aide précieuse !
Me voilà de retour avec une réussite !
Donc un grand merci Balsakup de m'avoir bien aidé pour trouver comment faire.
A base de tests, de vardump, de modifs et de correction de bêtises, voici le code qui fonctionne pour moi :
A présent, j'obtiens donc les bonnes cases à cocher déjà cochées en fonction de ce qui est renseigné en BDD par l'utilisateur lors de son inscription !
Objectif atteint !
Merci encore Balsakup et Lolo3129 pour votre aide !