Affichage des données d'un tableau sur un formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Affichage des données d'un tableau sur un formulaire

Re: Affichage des données d'un tableau sur un formulaire

par vicente » 13 sept. 2022, 18:22

Bonjour,

merci pour cette réponse.

Et, du coup, au niveau de l'input, je met quoi ?

Désolé mais j'essai d'apprendre en même temps.

Merci pour votre aide.

Re: Affichage des données d'un tableau sur un formulaire

par or 1 » 12 sept. 2022, 21:00

$sql = "SELECT * FROM fc_conventions";
// envoi de la requête
$statement = $conn->prepare($sql);
$statement->execute();
$listeConventions = $statement->fetchAll(PDO::FETCH_OBJ);

ça sert à afficher toutes les conventions.

quelque chose comme :
$sql = "SELECT * FROM fc_conventions where id = ?";
// envoi de la requête
$statement = $conn->prepare($sql);
$statement->execute([$id]);
sert à récupérer les données d'une convention, et par exemple, d'afficher un formulaire avec les champs pré-remplis pour une modification.

Re: Affichage des données d'un tableau sur un formulaire

par vicente » 12 sept. 2022, 20:53

c'est ce que j'ai fait j'ai une page php avec mon tableau et depuis ce tableau j'appelle la page formulaire php.

Pour chaque ligne j'ai un bouton modifier et je voudrai récupérer dans le formulaire chaque donnée de cette ligne pour éventuellement les modifier pour les mettre à jour dans le tableau.

Re: Affichage des données d'un tableau sur un formulaire

par or 1 » 12 sept. 2022, 20:29

dans ce cas, il faut commencer par faire une liste et pouvoir sélectionner l'item souhaité. enuiste, une page avec le formulaire.

Re: Affichage des données d'un tableau sur un formulaire

par vicente » 12 sept. 2022, 19:53

Bonjour,

j'ai changé l'endroit de la fin de la boucle foreach ...

Code : Tout sélectionner

<?php foreach ($listeConventions as $convention) { ?> <input type="hidden" value="<?= $convention->id; ?>" name="id[]" /> <input type="text" class="form-control" id="num_conv" name='num_conv' data-mask="99999" size="5" maxlength="5" placeholder="Numéro de convention" value="<?= $convention->num_conv; ?>" name="num_conv[<?= $convention->id; ?>]" /> <?php } ?>

L'affichage de chaque ligne du tableau sur l'imput se fait bien mais il m'affiche tous les imputs de toutes les lignes du tableau.
Je ne voudrai que cela affiche l'imput correspondant à la ligne que je veux modifier...

Merci.

Re: Affichage des données d'un tableau sur un formulaire

par vicente » 11 sept. 2022, 14:28

Cela affiche ceci avec le print_r :

<code>
Array ( [0] => stdClass Object ( [id] => 1 [num_conv] => 0000 [date_debut] => 2022-06-20 [date_fin] => 2022-06-20 [status] => 2 [statut_admin] => 1 [statut_financ] => 1 [contrat_progre] => 0 [pec_opco] => 0 [bc] => 0 [contact_at] => 2 [contact_rd] => 0 [contact_sg] => 1 [delete_flag] => 0 [date_created] => 2022-06-20 22:01:58 [date_updated] => 2022-09-11 09:30:14 ) [1] => stdClass Object ( [id] => 3 [num_conv] => 12999 [date_debut] => 2022-08-01 [date_fin] => 2027-08-25 [status] => 1 [statut_admin] => 0 [statut_financ] => 0 [contrat_progre] => 0 [pec_opco] => 0 [bc] => 0 [contact_at] => 4 [contact_rd] => 0 [contact_sg] => 0 [delete_flag] => 0 [date_created] => 2022-08-19 21:44:35 [date_updated] => 2022-08-23 21:31:49 ) [2] => stdClass Object ( [id] => 4 [num_conv] => 11888 [date_debut] => 2021-09-01 [date_fin] => 2022-09-13 [status] => 1 [statut_admin] => 0 [statut_financ] => 1 [contrat_progre] => 0 [pec_opco] => 0 [bc] => 0 [contact_at] => 9 [contact_rd] => 0 [contact_sg] => 0 [delete_flag] => 0 [date_created] => 2022-08-19 21:46:26 [date_updated] => 2022-09-11 12:02:54 ) [3] => stdClass Object ( [id] => 6 [num_conv] => 14333 [date_debut] => 2022-08-07 [date_fin] => 2022-08-31 [status] => 1 [statut_admin] => 0 [statut_financ] => 0 [contrat_progre] => 0 [pec_opco] => 0 [bc] => 0 [contact_at] => 1 [contact_rd] => 0 [contact_sg] => 0 [delete_flag] => 0 [date_created] => 2022-08-19 21:49:27 [date_updated] => 2022-09-10 19:22:33 ) [4] => stdClass Object ( [id] => 7 [num_conv] => 14556 [date_debut] => 2022-09-15 [date_fin] => 2022-09-29 [status] => 1 [statut_admin] => 0 [statut_financ] => 0 [contrat_progre] => 0 [pec_opco] => 0 [bc] => 0 [contact_at] => 0 [contact_rd] => 0 [contact_sg] => 0 [delete_flag] => 0 [date_created] => 2022-08-19 21:49:27 [date_updated] => 2022-08-19 21:49:27 ) [5] => stdClass Object ( [id] => 8 [num_conv] => 14547 [date_debut] => 2022-08-15 [date_fin] => 2022-08-29 [status] => 1 [statut_admin] => 1 [statut_financ] => 0 [contrat_progre] => 0 [pec_opco] => 0 [bc] => 0 [contact_at] => 3 [contact_rd] => 0 [contact_sg] => 1 [delete_flag] => 0 [date_created] => 2022-08-19 21:50:21 [date_updated] => 2022-09-10 19:22:38 ) [6] => stdClass Object ( [id] => 9 [num_conv] => 12445 [date_debut] => 2022-08-21 [date_fin] => 2022-08-28 [status] => 1 [statut_admin] => 0 [statut_financ] => 0 [contrat_progre] => 0 [pec_opco] => 0 [bc] => 0 [contact_at] => 0 [contact_rd] => 0 [contact_sg] => 0 [delete_flag] => 0 [date_created] => 2022-08-19 21:50:21 [date_updated] => 2022-08-19 21:50:21 ) [7] => stdClass Object ( [id] => 10 [num_conv] => 12000 [date_debut] => 2022-08-07 [date_fin] => 2022-08-07 [status] => 1 [statut_admin] => 0 [statut_financ] => 1 [contrat_progre] => 0 [pec_opco] => 0 [bc] => 0 [contact_at] => 5 [contact_rd] => 0 [contact_sg] => 0 [delete_flag] => 0 [date_created] => 2022-08-19 21:51:06 [date_updated] => 2022-09-10 19:22:45 ) [8] => stdClass Object ( [id] => 11 [num_conv] => 11111 [date_debut] => 2022-08-14 [date_fin] => 2022-08-14 [status] => 1 [statut_admin] => 0 [statut_financ] => 0 [contrat_progre] => 0 [pec_opco] => 0 [bc] => 0 [contact_at] => 0 [contact_rd] => 0 [contact_sg] => 0 [delete_flag] => 0 [date_created] => 2022-08-19 21:51:06 [date_updated] => 2022-08-19 21:51:06 ) [9] => stdClass Object ( [id] => 12 [num_conv] => 12444 [date_debut] => 2022-08-25 [date_fin] => 2022-08-25 [status] => 1 [statut_admin] => 0 [statut_financ] => 0 [contrat_progre] => 0 [pec_opco] => 0 [bc] => 0 [contact_at] => 0 [contact_rd] => 0 [contact_sg] => 0 [delete_flag] => 0 [date_created] => 2022-08-25 21:23:02 [date_updated] => 2022-08-25 21:23:02 ) [10] => stdClass Object ( [id] => 13 [num_conv] => 22222 [date_debut] => 2022-08-25 [date_fin] => 2022-08-25 [status] => 1 [statut_admin] => 0 [statut_financ] => 0 [contrat_progre] => 0 [pec_opco] => 0 [bc] => 0 [contact_at] => 0 [contact_rd] => 0 [contact_sg] => 0 [delete_flag] => 0 [date_created] => 2022-08-25 21:24:01 [date_updated] => 2022-08-25 21:24:01 ) [11] => stdClass Object ( [id] => 14 [num_conv] => 33333 [date_debut] => 2022-08-25 [date_fin] => 2022-08-25 [status] => 1 [statut_admin] => 0 [statut_financ] => 0 [contrat_progre] => 0 [pec_opco] => 0 [bc] => 0 [contact_at] => 0 [contact_rd] => 0 [contact_sg] => 0 [delete_flag] => 0 [date_created] => 2022-08-25 21:24:51 [date_updated] => 2022-08-25 21:24:51 ) [12] => stdClass Object ( [id] => 15 [num_conv] => 41411 [date_debut] => 2022-08-25 [date_fin] => 2022-08-25 [status] => 1 [statut_admin] => 0 [statut_financ] => 0 [contrat_progre] => 0 [pec_opco] => 0 [bc] => 0 [contact_at] => 0 [contact_rd] => 0 [contact_sg] => 0 [delete_flag] => 0 [date_created] => 2022-08-25 21:25:04 [date_updated] => 2022-08-25 21:25:04 ) [13] => stdClass Object ( [id] => 16 [num_conv] => 12345 [date_debut] => 2022-08-25 [date_fin] => 2022-08-25 [status] => 1 [statut_admin] => 0 [statut_financ] => 0 [contrat_progre] => 0 [pec_opco] => 0 [bc] => 0 [contact_at] => 0 [contact_rd] => 0 [contact_sg] => 0 [delete_flag] => 0 [date_created] => 2022-08-25 21:25:15 [date_updated] => 2022-08-25 21:25:15 ) )
</code>

Re: Affichage des données d'un tableau sur un formulaire

par or 1 » 11 sept. 2022, 14:13

que vaut
print_r($listeConventions);
avant le foreach ?

quel est le code html (ctrl + u) généré par ce code php, dans la boucle foreach ?

Affichage des données d'un tableau sur un formulaire

par vicente » 11 sept. 2022, 10:02

Bonjour,

débutant en php, j'essai de m'initier directement en montant petit une application web.

J'ai réussi à afficher un tableau issu de alimenté dans php admin mais je souhaiterai l'alimenter maintenant avec un formulaire.

Quand j'essai de modifier une ligne du tableau via un bouton modifier, il m'affiche sur le formulaire toujours le même numéro c'est-à-dire la première ligne.

Je vous envoi des morceaux de code pour pouvoir m'aider (ps : le form est loin d'être finalisé, je teste juste sur le premier Input) :

1/ code de connexion (fichier de connexion en php):

Code : Tout sélectionner

<?php $conn = ""; try { $servername = "localhost"; $dbname = "gretaweb"; $username = "root"; $password = ""; $conn = new PDO( "mysql:host=$servername; dbname=gretaweb", $username, $password ); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { echo "Echec de connexion: " . $e->getMessage(); } ?>
1/ extrait de code du formulaire :

Code : Tout sélectionner

<?php require_once('connexion.php'); // modification des données if ($_SERVER['REQUEST_METHOD'] == 'POST') { // création de la requête $sql = "UPDATE fc_conventions SET num_conv = :num_conv WHERE id = :id"; $statement = $db->prepare($sql); // envoi des requêtes foreach ($_POST['id'] as $id) { $num_conv = $_POST['num_conv'][$id] ?? ''; $statement->execute(compact('id', 'num_conv')); } } // création de la requête $sql = "SELECT * FROM fc_conventions"; // envoi de la requête $statement = $conn->prepare($sql); $statement->execute(); $listeConventions = $statement->fetchAll(PDO::FETCH_OBJ); ?> <!DOCTYPE html> <html>
puis....

Code : Tout sélectionner

div class="main-container"> <div class="pd-ltr-20 xs-pd-20-10"> <div class="min-height-200px"> <div class="pd-20 card-box mb-30"> <div class="clearfix"> <h4 class="text-blue h4">Suivi des conventions</h4> <p class="mb-30">Formation Continue</p> </div> <div class="wizard-content"> <form class="tab-wizard wizard-circle wizard" action='' method='post'> <h5>Identification de l'action</h5> <section> <?php foreach ($listeConventions as $convention) { ?> <div class="row"> <input type="hidden" value="<?= $convention->id; ?>" name="id[]" /> <div class="col-md-3"> <div class="form-group"> <label>N° convention :</label> <input type="text" class="form-control" id="num_conv" name='num_conv' data-mask="99999" size="5" maxlength="5" placeholder="Numéro de convention" value="<?= $convention->num_conv; ?>" name="num_conv[<?= $convention->id; ?>]" /> </div> </div>

Merci pour l'aide apportée.