Menu

Récupérer des données en BDD à l'ouverture d'un modal [Résolu/Fermé]

Messages postés
29
Date d'inscription
vendredi 8 août 2014
Statut
Membre
Dernière intervention
22 janvier 2016
-
Bonjour, chers ami(e)s développeurs,

Je bute sur un problème, j'ai une fonction, qui affiche sur une page toutes les annonces se trouvant dans la BDD, et j'ai un bouton pour ouvrir un modal, je voudrais donc, qu'en ouvrant ce modal, on récupère l'id du membre qui a posté l'annonce (qui est dans la bdd aussi), je vais mettre les scripts qui pourrais vous interresser:

ma fonction pour afficher les annonces:
function showPosts(){
    include('bddConnect.php');
    $reponse = $PDO->prepare('SELECT * FROM posts ORDER BY date DESC');
    $reponse->execute();
    $donnees = $reponse->fetchAll();
    
 //On affiche les lignes du tableau une à une à l'aide d'une boucle
             foreach($donnees as $R){
             $id_member = $R['id_member'];
             $date_non_traitee = explode("-",$R['date']);
             $date_traitee = $date_non_traitee['2']."/".$date_non_traitee['1']."/".$date_non_traitee['0'];
                        echo  "<div class='panel panel-primary'>
                                <div class='panel-heading'>
                                    <h3 class='panel-title' style='color: white;'>".$R['name_author']." ".$date_traitee."</h3>
                                </div>
                            <div class='panel-body'>
                            <p style='color: black;'>".htmlspecialchars_decode($R['content'])."</p>
                            <a href='#myModal' data-target='#myModal' data-toggle='modal' style='float: right;' class='btn btn-info'>CONTACTER</a><br />
  </div>
</div>";
             }
}


Merci à ceux qui prendrons la peine d'éclairer mon chemin ;)
Afficher la suite 

1 réponse

Messages postés
2378
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
2 février 2018
391
0
Merci
Salut,

Tu ne le précise pas mais il semble que tu utilises Bootstrap pour réaliser ta fenêtre modale.

Si c'est le cas, tu as dans la doc un exemple correspondant à ce que tu souhaites : http://getbootstrap.com/javascript/#modals-related-target

Le principe est d'ajouter un attribut data-cequetuveux avec une valeur unique (ici l'id du membre) pour chaque lien permettant d'ouvrir la modale, puis de détecter l'ouverture de la modale en javascript via l'événement show.bs.modal pour modifier le contenu de la modale en fonction de la valeur de l'attribut du lien cliqué.

Pour modifier le contenu en fonction de l'attribut, au moins deux solutions.
Solution 1 : afficher tous les contenus possibles dans des div cachés dès le chargement de la page et afficher le contenu correspondant au lien cliqué lors de l'ouverture de la modale.
Cette solution est facile à mettre en place mais alourdir rapidement le chargement de ta page si il y a beaucoup de contenu à charger.
Solution 2 : utiliser une requête ajax pour récupérer et afficher les infos correspondant au lien cliqué.

Bonne journée
Charlie_87
Messages postés
1
Date d'inscription
mercredi 13 mai 2015
Statut
Membre
Dernière intervention
9 juin 2016
-
Bonjour Pitet,
J'ai le même problème que MrAkiroKun, je souhaite integrer un contenu d'une bdd dans un modal. Je ne suis pas encore experte avec AJAX et j'aimerais savoir quel serait la methode à mettre en place avec AJAX.

j'ai appris la methode MVC (modele, Vues et controleur). Pour utiliser du AJAX, j'utilise un controleur fonctions.js où est écrit la methode getXmlBase qui a pour parametre le xml, nomtable, nomcolonne, valeurcolonne et colonne recherché.

Mais comment bootstrap lors du chargement du modal, il récupére la valeur de l'objet.
Merci d'avance
Pitet
Messages postés
2378
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
2 février 2018
391 -
Salut,
Il serait mieux que tu crées ton propre sujet sur le forum, ton message aura ainsi une meilleure visibilité et nous pourrons plus facilement te proposer de l'aide.

Si tu peux également mettre ton code et/ou exemple afin de mieux comprendre où est ton blocage ?

Bonne journée,