Partage
  • Partager sur Facebook
  • Partager sur Twitter

Formulaire pré-rempli

Sujet résolu
8 juin 2021 à 22:53:32

Bonsoir, il s'agit d'une fenêtre modale qui sert à modifier les informations d'un utilisateur. J'aimerais faire en sorte que les champs soient donc pré-remplis pouvez-vous m'aider ? Merci

La table s'appelle membre, j'ai essayé ça :

Le problème c'est que ça doit être pré-rempli mais dans "prenom", bah ça dépend sur quel utilisateur on clique... hm je suis un peu perdu

    <section class="modal-card-body">
      <div class="field">
        <label for="Identifiant" class="label">Nom</label>
        <div class="control">
        <input type="text" name="nom" id="nom"  required class="input" value="<?php echo $membre['mot_de_passe'] ?>" />
        </div>
      </div>



-
Edité par MastrAtuss 8 juin 2021 à 23:30:06

  • Partager sur Facebook
  • Partager sur Twitter
9 juin 2021 à 8:24:23

Salut

Il faut que, quand tu ouvres la modale, tu récupères les données correspondant à l'utilisateur de la ligne. Soit tu utilises JavaScript pour récupérer directement ces informations au clic depuis le tableau (récupérer la ligne parente du bouton d'édition et prendre les valeurs de chaque cellule pour remplir le formulaire), soit tu effectues un appel AJAX avec l'ID de l'utilisateur, appel qui te retourne les informations dans un JSON depuis la base de données.

J'aime bien le formulaire qui contient un label "Nom" pour le champ qui affiche le mot de passe en clair  :p

  • Partager sur Facebook
  • Partager sur Twitter
9 juin 2021 à 11:26:52

Bonjour, merci pour vos indications. 

Voici ma boucle qui parcourt chaque membre, mon tuteur de stage m'a dit que js n'était pas obligatoire, comment faire sans ? 

Je ne vois pas trop comment faire, pouvez-vous me donner des conseils ?

					foreach ($tbMembres as $membre) {
					?>
						<tr>

								<td><?php echo $membre->idMembre; ?></td>
								<td><?php echo $membre->nom; ?></td>
                <td><?php echo $membre->prenom; ?></td>
                <td><?php echo $membre->email; ?></td>
                <td><?php echo $membre->tel; ?></td>
                <td>
                  <form method="post">
                    <button type="submit" class="button is-primary is-small" name="demanderModifierUser" value="<?php echo $membre->idMembre; ?>"><i class="fas fa-edit"></i></button>
                  </form>
                </td>
  • Partager sur Facebook
  • Partager sur Twitter
9 juin 2021 à 13:06:05

Dans ce cas, il faut re-boucler sur les membres (ou lors de la même boucle, mais c'est plus sport compte tenu du tableau HTML) générer les modales séparées (IDs distincts) contenant les formulaires, modales qui seront activées au clic sur le bouton de la ligne.

  • Partager sur Facebook
  • Partager sur Twitter
9 juin 2021 à 14:53:29

 Mon tuteur m'a fait mettre ceci dans le bouton d'ouverture pour les fenêtres modales :

                  <form method="post">
                    <button type="submit" class="button is-primary is-small" name="demanderModifierUser" value="<?php echo $membre->idMembre; ?>"><i class="fas fa-edit"></i></button>
                  </form>

 Je parle du "value" qui va chercher l'id du membre, mais comment me servir de ça ?

 Il faudrait que dans le formulaire

je mette value=" Et ici on va chercher le prénom de l'utilisateur qui a l'ID correspondant au bouton cliqué " Un truc du genre $value="membre[$idMembre][$nom]";

Mais comment traduire ça pour que ça marche !? merci

-
Edité par MastrAtuss 9 juin 2021 à 15:33:37

  • Partager sur Facebook
  • Partager sur Twitter
9 juin 2021 à 21:56:44

Quitte à me répéter :

  • soit tu as une seule modale, mais il faut du coup du JavaScript pour récupérer les données depuis le tableau ;
  • soit tu prépares autant de modales que de lignes (et ainsi tu peux pré-remplir le formulaire), et avec l'ID du membre comme valeur du bouton et quelque part dans la modale, tu sais laquelle afficher.

Comme tu sembles dire qu'il ne faut pas utiliser de JavaScript, je ne vois plus que la seconde solution. Ce qui implique donc que (et là aussi je me répète) tu dois :

  • soit boucler à nouveau sur les membres pour générer toutes les modales et tous les formulaires dans ces modales ;
  • soit mettre quelque part dans la boucle actuelle la modale et le formulaire pour le membre sur lequel la boucle se trouve.
  • Partager sur Facebook
  • Partager sur Twitter
10 juin 2021 à 9:01:41

Personne a la solution ?
  • Partager sur Facebook
  • Partager sur Twitter
10 juin 2021 à 9:03:27

Normalement ce n'est pas le but du forum de faire ton travail à ta place. On va t'aider à implémenter et orienter tes essais pour arriver à quelque chose, mais le mode clés en main n'est pas considéré comme adapté.

Par contre, tu peux choisir parmi les deux dernières solutions si tu souhaites qu'on t'aiguille plus précisément.

-
Edité par Ymox 10 juin 2021 à 9:04:17

  • Partager sur Facebook
  • Partager sur Twitter
10 juin 2021 à 10:39:39

Bonjour, merci pour votre réponse ! Je n'avais pas vu votre dernier message.

Voici ce que j'ai fait :

	$tbMembres = array();	
	foreach ($tbMembresTemp as $membre){
		$tbMembres += [$membre->idMembre => $membre];
	}	

Et dans le formulaire j'ajoute la valeur là dans nom: 

value="<?php echo $tbMembres[$idUserModif]->nom; ?>">

Et ça marche !


  • Partager sur Facebook
  • Partager sur Twitter
10 juin 2021 à 11:03:36

Mmm, et ça affiche bien les données de l'utilisateur que tu as choisi, ou les données du dernier de la page ?

  • Partager sur Facebook
  • Partager sur Twitter
10 juin 2021 à 11:04:07

Oui, ça affiche tout parfaitement !
  • Partager sur Facebook
  • Partager sur Twitter
10 juin 2021 à 11:06:09

Je serais curieux de voir l'entier du script…

-
Edité par Ymox 10 juin 2021 à 11:07:56

  • Partager sur Facebook
  • Partager sur Twitter
10 juin 2021 à 11:20:13

Cela ne ressemble pas à grand chose pour l'instant, il y a encore des trucs à compléter et corriger, je pourrai vous le montrer à la fin du projet
  • Partager sur Facebook
  • Partager sur Twitter