Récupérer des données en BDD à l'ouverture d'un modal

Résolu/Fermé
MrAkiroKun Messages postés 29 Date d'inscription vendredi 8 août 2014 Statut Membre Dernière intervention 22 janvier 2016 - Modifié par MrAkiroKun le 22/01/2016 à 10:51
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 9 juin 2016 à 16:57
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 ;)
A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
22 janv. 2016 à 12:09
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 : https://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
0
Charlie_87 Messages postés 1 Date d'inscription mercredi 13 mai 2015 Statut Membre Dernière intervention 9 juin 2016
9 juin 2016 à 15:18
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
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
9 juin 2016 à 16:57
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,
0