Bonjour,
je rencontre un souci pour récupérer des informations dans une modale.
j'ai une liste de produit avec un bouton pour afficher les informations dans une modale et j'utilise pour cela ajax.
voici le code avec explication.
Ici la boucle qui affiche les produits :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php foreach ($produit as $prod): ?> <div class="col-md-6 col-lg-4"> <div class="card"> <a href="#ajoutModal" data-id="<?php echo $prod->id; ?>" id="info" data-bs-toggle="modal" data-bs-target="#ajoutModal"><img src="../../produits/<?php echo $prod->image; ?>.jpg" alt="<?php echo $prod->nom; ?>"></a> <div class="sale-flash badge bg-success p-2"><?php echo $prod->pg; ?>/<?php echo $prod->vg; ?></div> <div class="card-body"> <div class="card-header"> <h3 class="card-title">Prix : 10,00</h3> <h5 class="card-title"><?php echo $prod->nom; ?> <?php echo $prod->ml; ?>ml - Prix : 10,00</h5> </div> </div> </div> </div> <?php endforeach ?>
Au clic de l'image je passe a la récupération des informations en ajax :
Donc ici la requête envoi vers le fichier process.php qui récupère les info
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 $('body').on('click', '#info', function(e) { e.preventDefault(); $.ajax({ url: 'process.php', type: 'post', data: {produitinfoid: this.dataset.id}, success: function(response) { let prodInfo = JSON.parse(response); $('#produit_id').val(prodInfo.id) $('#nomproduit').val(prodInfo.nom); } }) })
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if (isset($_POST['produitinfoid'])){ $produitinfoid = (int)$_POST['produitinfoid']; echo json_encode($db->getSingleproduit($produitinfoid)); }
Pour simplifier les requête à la base je stock dans un autre fichier
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public function getSingleproduit(int $id) { $q = $this->getconnexion()->prepare("SELECT * FROM l_produit WHERE id = :id"); $q->execute(['id' => $id]); return $q->fetch(PDO::FETCH_OBJ); }
Jusque la tout fonctionne, mais je n'arrive pas a mettre les informations dans la modale.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <div class="modal-header"> <h1 class="modal-title fs-5" id="#nomproduit"></h1> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div>
Peut être aussi que j'utilise une méthode qui n'est pas la plus pertinente pour récupérer des informations dans une modale.
Merci de votre aide.
Partager