à l'intérieur d'un code html dans un code js
Salut !
Voilà quelques jours que j'ai commencé l'apprentissage du PHP grâce à l'excellent SdZ.
J'en suis au TP où il faut faire un blog avec billets et commentaires. Bon le TP est simple, trop même, du coup j'ai voulu aller plus loin parce que je suis masochiste.
Voici le TP http://www.siteduzero.com/tutoriel-3-231261-tp-un-blog-avec-des-commentaires.html
En gros ça consiste à créer une page qui contient les 5 derniers billets d'une table de données, avec la date toussa. Puis sur chaque billet un lien vers une autre page contenant le billet en question + les commentaires qui y sont associés.
Pour cela on créé deux tables, l'une avec les billets, et l'autre avec les commentaires. Cette dernière contient un champ particulier, "id_billet", qui correspond au champ "id" du billet auquel le commentaire est associé. 'Fin vous voyez quoi, vous allez comprendre pourquoi j'en parle
J'ai eu l'idée (mauvaise visiblement) d'intégrer l'affichage des commentaires dans la même page, avec mon adoré javascript et la fonction .html()
Pour cela, j'intègre dans chaque lien "commentaires" (dans une balise <a>) un "id" (=attribut html cette fois-ci) qui contient l'id (champ SQL) du billet auquel il est juxtaposé (vous arrivez à suivre ?
).
En gros le contenu de l'id (html) de chaque lien vers les commentaires contient l'id (SQL) du billet auquel les commentaires seront associés.
Dans mon script javascript j'insère un évènement .click() associé à chaque lien "commentaires" dans lequel de mets une fonction .html associée à une <div> qui existe déjà, prévue pour afficher les commentaires. Donc vous cliquez sur le lien "commentaires", le contenu html suivant sera affiché dans une <div>.
Dans le contenu html je tape un script php, qui va dans un premier temps chercher dans la table de données "commentaires" tous les commentaires dont le champ "id_billet" est égal à ce fameux "id" (html) qui vaut l'id (SQL) du billet associé. Pour cela je crée dès le début du script une variable "id" (pour être original) qui vaut l'attribut html "id" de l'élément cliqué ($(this).attr('id')).
Et je finis avecle classique "while (...........->fetch()){....}" dans lequel j'insère l'echo qui va m'afficher tous les commentaires avec auteur et date.
Le truc qui pose problème, c'est que je n'arrive pas à insérer la variable javascript "id" dans "WHERE id_billet = ...". J'ai tout essayé '"+id/"', "'+id+'", \'"+id+"\', enfin tout ce qui est possible, ça ne marche pas.
Pour ceux qui sont plus à l'aise avec un code, le voici
Le lien "commentaires"
'</p><a href=# class=\'commentaires\' id=' . $donnee['id'] . '>Commentaires</a><br /><br />'
Le script
$(function() {
$('.commentaires').click(function() {
var id = $(this).attr('id');
$('#commentaires').html('<?php $coms = $bdd->query('SELECT contenu, date, auteur FROM commentaires WHERE id =
??!
ORDER BY id DESC'); while ($donnees = $coms->fetch()) {echo $donnees['contenu'] . '<br />Posté par ' . $donnees['auteur'] . ' le ' . $donnees['date'];} ?>');
});
});
le ??! c'est l'endroit où je veux insérer la variable js 