Astuces-Webmaster

Accueil > tutos > ajax > systeme-de-commentaire-ajax

Système de commentaire AJAX / PHP


Difficulté Tags / Mots-clés Prérequis
facile AJAX, système de commentaire, simple, design, commentaire, Module commentaire AJAX, Module AJAX Bonne base PHP / MySQL, Maitrise XHTML / CSS
Durée Voir aussi Publié le
2 heures Formulaire de contact AJAX, Système de vote AJAX 07 août 2010
Voir une démo du système de commentaire AJAXtélécharger

Comme vous avez déjà peut-être pu le constater, un nouveau module de commentaire basé sur la technologie AJAX est venu s'ajouter à Astuces-Webmaster. Et c'est précisement ce module de commentaire que je vais vous apprendre à intégrer dans un site web. Mais tout d'abord, je vais vous présenter les deux modules qui font la force de ce module de commentaire.

1. Le premier élément est la base du système de commentaire AJAXisé et tiré de l'excellent site anglophone Tutorialzine.com et constitue ainsi la base du module, robuste et fiable.

2. Quant au deuxième, le défi était de trouvé un formulaire qui donne envie de laisser des commentaires ! Quelque chose de moderne, exploitant les nouvelles propriétés CSS3 et qui ait de la gueule ! Second paramètre requis : la simplicité, la clareté et l'intuitivité du formulaire. Gros challenge vous dites ? Je dois avouer qu'effectivement j'ai mis un certain temps à le trouver, mais j'ai fini par mettre la main sur quelque chose de très convainquant et qui remplissait les conditions fixées au départ. Je n'en dis pas plus, je vous laisse voir de quoi il s'agit.

Système de commentaire basé sur AJAX

plus

formulaire pure CSS3

plus

apercu du système de commentaire AW

Et voilà le résultat ! Un superbe module de commentaire qui en jette un max. ! Sans plus attendre je vous laisse checker une démo de cette petite merveille, le tutoriel est juste en dessous.

Avantages

Pas de rechargement de la page lors du post des commentaires grâce à son moteur AJAX



Formulaire intuitif et parfaitement comprhénsible (pas de subitilité cachée)



Le bouton "Envoyer" affiche un message pendant l'envoi du commentaire indiquant ainsi à l'utilisateur que sa requête est en cours de traitement.



Protection contre les posts intempestifs



Inconvénients

Pas de rechargement de la page lors du post des commentaires grâce à son moteur AJAX



Formulaire intuitif et parfaitement comprhénsible (pas de subitilité cachée



Le bouton "Envoyer" affiche un message pendant l'envoi du commentaire indiquant ainsi à l'utilisateur que sa requête est en cours de traitement.



Protection contre les posts intempestifs



 

Voir une démo du système de commentaire AJAXtélécharger

Arborescence du module complet :

 

Etape 1 : Création de la table dans MySQL

CREATE TABLE `comments` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(128) NOT NULL default '',
`url` varchar(255) NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`body` text NOT NULL,
`dt` timestamp NOT NULL,
`page_id` varchar(128) NOT NULL default '0',
PRIMARY KEY  (`id`)
) TYPE=MyISAM  AUTO_INCREMENT=154 ;

Etape 2 : Connexion à la base de données

--> connect.php

<?php

/* Configuration de la connexion */

$db_host = 'localhost';
$db_user = 'root';
$db_pass = 'toor';
$db_database = 'database';

/* Fin de la configuration */

$link = @mysql_connect($db_host,$db_user,$db_pass) or die('Unable to establish a DB connection');

mysql_query("SET NAMES 'utf8'");
mysql_select_db($db_database,$link);

?>

Etape 3 : Récupération des commentaires & structure du formulaire

--> comment.php

<?php

// Error reporting:
error_reporting(E_ALL^E_NOTICE);

include "../comm/connect.php";
include "../comm/comment.class.php";

/*
/ On récupère les commentaires s'il y en a dans la BDD
*/

$comments = array();
$result = mysql_query("SELECT * FROM comments WHERE page_id = '$id_page' ORDER BY id ASC");

//

while($row = mysql_fetch_assoc($result))
{
$comments[] = new Comment($row);
}

?>
<?php

/*
/ Affichage des commentaires un par un
*/

foreach($comments as $c){
echo $c->markup();
}

?>
<div id="addCommentContainer">
<h4 align="center">Ajouter un commentaire</h4>
<form id="form1" method="post" action="">
<p>
<label for="name">Nom</label>
<input name="name" type="text" id="name" size="45" />
</p>
<p>
<label for="email">Email</label>
<input name="email" type="text" id="email" size="45" />
</p>
<p>
<label for="commentaires">Commentaire</label>
<textarea name="body" cols="35" rows="6" id="body"></textarea>
</p>
<p>
<label for="url">Site (facultatif)</label>
<input name="url" type="text" id="url" size="45" />
</p>

/*
/ Champ caché qui va transmettre l'ID de la page pour l'inscrire dans la BDD
*/

<input type="hidden" name="id_page" id="id_page" value="<?php echo $id_page ?>" />

<p>
<input type="submit" id="submit" value="Envoyer" />
</p>

</form>
</div>

Etape 4 : Traitement des données et vérification

--> comment.class.php

<?php

class Comment
{
private $data = array();

public function __construct($row)
{
/*
/ Le constructeur
*/

$this->data = $row;
}

public function markup()
{
/*
/ This method outputs the XHTML markup of the comment
*/

// Setting up an alias, so we don't have to write $this->data every time:
$d = &$this->data;

$link_open = '';
$link_close = '';

if($d['url']){

// If the person has entered a URL when adding a comment,
// define opening and closing hyperlink tags

$link_open = '<a href="'.$d['url'].'">';
$link_close = '</a>';
}

// Converting the time to a UNIX timestamp:
$d['dt'] = strtotime($d['dt']);

// Needed for the default gravatar image:
$url = 'http://'.dirname($_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]).'/comm/img/default_avatar.gif';

return '

<div class="comment">
<div class="avatar">
'.$link_open.'
<img src="http://www.gravatar.com/avatar/'.md5($d['email']).'?size=50&amp;default='.urlencode($url).'" />
'.$link_close.'
</div>

<div class="name">'.$link_open.$d['name'].$link_close.'</div>
<div class="date" title="Added at '.date('H:i \o\n d M Y',$d['dt']).'">'.date('d M Y',$d['dt']).'</div>
<p>'.$d['body'].'</p>
</div>
';
}

public static function validate(&$arr)
{
/*
/ This method is used to validate the data sent via AJAX.
/
/ It return true/false depending on whether the data is valid, and populates
/ the $arr array passed as a paremter (notice the ampersand above) with
/ either the valid input data, or the error messages.
*/

$errors = array();
$data = array();

// Using the filter_input function introduced in PHP 5.2.0

if(!($data['id_page'] = filter_input(INPUT_POST,'id_page',FILTER_CALLBACK,array('options'=>'Comment::validate_text'))))
{
$errors['id_page'] = '*';
}

if(!($data['email'] = filter_input(INPUT_POST,'email',FILTER_VALIDATE_EMAIL)))
{
$errors['email'] = '<span style="color:red;"> Adresse invalide</span>';
}

if(!($data['url'] = filter_input(INPUT_POST,'url',FILTER_VALIDATE_URL)))
{
// If the URL field was not populated with a valid URL,
// act as if no URL was entered at all:

$url = '';
}

// Utilisation d'un filtre personnalisé callback function

if(!($data['body'] = filter_input(INPUT_POST,'body',FILTER_CALLBACK,array('options'=>'Comment::validate_text'))))
{
$errors['body'] = '<span style="color:red;"> Entrez un commentaire</span>';
}

if(!($data['name'] = filter_input(INPUT_POST,'name',FILTER_CALLBACK,array('options'=>'Comment::validate_text'))))
{
$errors['name'] = '<span style="color:red;"> Nom manquant</span>';
}

if(!empty($errors)){

// s'il y des erreurs : on les copie dans $errors array à $arr

$arr = $errors;
return false;
}

// si les données sont valides, on nettoie le code HTML et on les copie dans $arr

foreach($data as $k=>$v){
$arr[$k] = mysql_real_escape_string($v);
}

// On s'assure que l'adresse email est bien en minuscule

$arr['email'] = strtolower(trim($arr['email']));

return true;

}

private static function validate_text($str)
{
/*
/ La méthode utilisée pour le filtre des champs FILTER_CALLBACK
*/

if(mb_strlen($str,'utf8')<1)
return false;

// Encoder les caractères spéciaux tel que (<, >, ", & .. etc) et les convertir
// Modifier les nouvelles lignes par la balise <br>

$str = nl2br(htmlspecialchars($str));

// Enlever les lignes inutiles
$str = str_replace(array(chr(10),chr(13)),'',$str);

return $str;
}
}

?>

Etape 5 : Envoi des données dans La BDD

--> submit.php

<?php

// Error reporting:
error_reporting(E_ALL^E_NOTICE);

include "connect.php";
include "comment.class.php";

$arr = array();
$validates = Comment::validate($arr);

if($validates)
{
/* Tout est Ok, insertion dans la BDD */

mysql_query("INSERT INTO comments(name,url,email,body,page_id)
VALUES (
'".$arr['name']."',
'".$arr['url']."',
'".$arr['email']."',
'".$arr['body']."',
'".$arr['id_page']."'
)");

$arr['dt'] = date('r',time());
$arr['id'] = mysql_insert_id();

/* Fonction mail pour être prévenu lors de l'ajout d'un nouveau commentair */

$msg = "Un nouveau commentaire a été ajouté sur Astuces-Webmaster.ch!
Nom : ".$arr['name']."
Email : ".$arr['email'].";
Page = ".$arr['id_page'].";
Commentaire = ".$arr['body'];

mail('votre-email@email.com','Nouveau commentaire',$msg);

$arr = array_map('stripslashes',$arr);

$insertedComment = new Comment($arr);

/* Interprétation du HTML */

echo json_encode(array('status'=>1,'html'=>$insertedComment->markup()));

}
else
{
/* Affichage des messages d'erreurs */
echo '{"status":0,"errors":'.json_encode($arr).'}';
}

?>

Etape 6 : AJAX

--> script.js

Le fichier script.js contient le coeur de la fonction AJAX qui va permettre d'afficher un commentaire fraichement rédigé directement en dessous des autres sans avoir à rechargé toute la page. C'est le deuxième plus gros atout de ce module de commentaire.

Note du chef : la fonction jQuery.noConflict(); a été ajouté dans le script et la variable générale (habituellement $) a été changée pour $j ce afin d'éviter les conflits avec d'éventuels autres bibliothèques Javascript qui serait installé sur votre site.

$j = jQuery.noConflict();

$j(function() {

/* Le code qui suit est exécuté une fois que le DOM est chargé */

/* cette variable empêche les posts intempestifs */
var working = false;

/* On récupère les événements du bouton submit */
$j('#form1').submit(function(e){

e.preventDefault();
if(working) return false;

working = true;
$j('#submit').val('Chargement en cours..');
$j('span.error').remove();

/* Envoi des données au fichier submit.php */
$j.post('../comm/submit.php',$j(this).serialize(),function(msg){

working = false;
$j('#submit').val('Submit');

if(msg.status){

/*
/ Si l'insertion du commentaire c'est bien passé
/ l'afficher en dessous des autres avec un effet SlideDown
/*/

$j(msg.html).hide().insertBefore('#addCommentContainer').slideDown();
$j('#body').val('');
}
else {

$j.each(msg.errors,function(k,v){
$j('label[for='+k+']').append('<span class="error">'+v+'</span>');
});
}
},'json');

});

});

Etape 7 : la couche CSS3 ;-)

--> commentaire.css

/* MODULE DE COMMENTAIRE AJAX */

.comment,
#addCommentContainer{
background:#f7f7f7;
background:-moz-linear-gradient(90deg, #ccc, #fff); /* Firefox */
background:-webkit-gradient(linear, left top, left bottom, from(#fff), to(#ccc)); /* Webkit */
border:1px solid #aaa;
border-radius:10px;
-moz-border-radius:10px;
-webkit-border-radius:10px;
-moz-box-shadow:0 0 15px #aaa;
-webkit-box-shadow:0 0 15px #aaa;
box-shadow:0 0 15px #aaa;
margin:20px auto;
padding:20px;
width:510px;
}

.comment .avatar{
height:50px;
width:50px;
background:url('../comm/img/default_avatar.gif') no-repeat #fcfcfc;
-moz-box-shadow:1px 1px 0 #c2c2c2;
-webkit-box-shadow:1px 1px 0 #c2c2c2;
box-shadow:1px 1px 0 #c2c2c2;
float:left;
margin-right: 20px;
}

.comment .avatar img{
display:block;
}

.comment .name{
padding-bottom:10px;
font-size:14px;
color:#0459b7;
font-weight: bold;
}

.comment .date{
font-size:10px;
padding: 20px 10px 0 10px;
color:#666;
float: right;
}

.comment p,
#addCommentContainer p{
line-height:1.5;
overflow-x:hidden;
}

fieldset,img{ border:0;}

html {
overflow:-moz-scrollbars-vertical;
}

form {
margin: 20px 0;
}

#comDiplayBox{
background:#f7f7f7;
background:-moz-linear-gradient(90deg, #ccc, #fff); /* Firefox */
background:-webkit-gradient(linear, left top, left bottom, from(#fff), to(#ccc)); /* Webkit */
border:1px solid #aaa;
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px;
-moz-box-shadow:0 0 15px #aaa;
-webkit-box-shadow:0 0 15px #aaa;
box-shadow:0 0 15px #aaa;
margin:20px auto 0;
padding:20px;
width:510px;
height: auto;
}

form p{
margin-bottom:20px;
}

form p:last-child{ /* Sélecteur avancé pour sélectionner le dernier paragraphe du formulaire */
margin-bottom:0;
}

label{
cursor:pointer;
display:block;
float:left;
font-weight:bold;
letter-spacing: 1px;
line-height:28px;
margin-bottom:5px;
width:160px;
}

form p:hover label{
color:#0459b7;
}

form p:hover label:after{
content:' >>';
}

input[type=text], textarea,
input[type=password]{
background: rgba(255, 255, 255, 0.9);
background:-moz-linear-gradient(90deg, #fff, #eee); /* Firefox */
background:-webkit-gradient(linear, left top, left bottom, from(#eee), to(#fff), color-stop(0.2, #fff)); /* Webkit */
border:1px solid #aaa;
border-radius:3px;
-moz-border-radius:3px;
-webkit-border-radius:3px;
-moz-box-shadow:0 0 3px #aaa;
-webkit-box-shadow:0 0 3px #aaa;
box-shadow:0 0 3px #aaa;
padding:5px;
}

input[type=text]:focus, textarea:focus,
input[type=password]:focus{
border-color:#093c75;
box-shadow:0 0 3px #0459b7;
-moz-box-shadow:0 0 3px #0459b7;
-webkit-box-shadow:0 0 3px #0459b7;
outline:none; /* Pour enlever le contour jaune lorsque l'on sélectionne un input dans Chrome */
}

select{
cursor:pointer;
padding:3px;
box-shadow:0 0 3px #0459b7;
-moz-box-shadow:0 0 3px #aaa;
-webkit-box-shadow:0 0 3px #aaa;
}

select:active,
select:focus{
border:1px solid #093c75;
box-shadow:0 0 3px #0459b7;
-moz-box-shadow:0 0 3px #0459b7;
-webkit-box-shadow:0 0 3px #0459b7;
outline:none;
}

input[type=submit],
a.submit{
background:#ddd;
background:-moz-linear-gradient(90deg, #0459b7, #08adff); /* Firefox */
background:-webkit-gradient(linear, left top, left bottom, from(#08adff), to(#0459b7)); /* Webkit */
border:1px solid #093c75;
border-radius:3px;
-moz-border-radius:3px;
-webkit-border-radius:3px;
box-shadow:0 1px 0 #fff;
-moz-box-shadow:0 1px 0 #fff;
-webkit-box-shadow:0 1px 0 #fff;
color:#fff;
cursor:pointer;
font-weight:bold;
margin-left:225px;
padding:5px 10px;
text-decoration:none;
text-shadow:0 1px 1px #333;
text-transform:uppercase;
}

input[type=submit]:hover,
a.submit:hover{
background:#eee;
background:-moz-linear-gradient(90deg, #067cd3, #0bcdff);
background:-webkit-gradient(linear, left top, left bottom, from(#0bcdff), to(#067cd3));
border-color:#093c75;
text-decoration:none;
}

input[type=submit]:active,
input[type=submit]:focus,
a.submit:active,
a.submit:focus{
background:#ccc;
background:-moz-linear-gradient(90deg, #0bcdff, #067cd3);
background:-webkit-gradient(linear, left top, left bottom, from(#067cd3), to(#0bcdff));
border-color:#093c75;
outline:none;
}

Etape 8 : Admirez...

Votre module de commentaire AJAX / PHP devrait être operationel ! Vous avez une démo tous en bas de la page ;-).

2.8/5 (108 votes)

Source - GalleryView télécharger Démo Système de commentaire AJAX / CSS3


youyou
26 Oct 2010

il manque seulement s'il compte le nombre de commantaires !

zizou0105
04 Nov 2010

Oui, le compte du nombre de commentaires peut être un + intéressant. J'imagine qu'il doit être assez facile de changer la disposition des commentaires pour faire qu'ils apparaissent plutôt en dessous de ces champs de saisie qu'au dessus (un peu à la facebook quoi).

zizou0105
04 Nov 2010

Bon concernant facebook j'ai rien dit. :) Ceci dit, le nombre de commentaires serait bien aussi et aussi pouvoir donner la possibilité de cacher un commentaire (petite croix accessible pour un admin par exemple)

17 Nov 2010

Merci pour ce code ..

Mais toutefois, c'est moi ou il manque la structure de la table ?

Orion
17 Nov 2010

@camyo : Oui tu as tout à fait raison, c'est un oubli de ma part.. Je viens d'ajouter la structure au début du tutoriel. Merci de me l'avoir fait remarqué.

Yo
23 Nov 2010

Bonjour,

Super système ! Seul soucis, lorsque je valide en cliquant sur "Envoyer", le script reste bloqué sur "Chargement en cours" et il ne se passe rien ...

Une idée ?

Orion
02 Dec 2010

@Yo
Hello,

Oui c'est surement un problème de lien. Genre un fichier qui pointe pas au bon endroit.. Essai de checker tes liens.

Dolby
12 Dec 2010

bravo pour cet article , clair et simple !

test
03 Mar 2011

j'aime bien le script ;)

teusqwa
03 Mar 2011

Bonjour !
chez moi le module ne fonctionne pas, quelqu'un pourrait-il m'expliquer l'arborescence car je pense que mon problème vient de là (en particulier avec le scipt.js dont je ne sais pas quoi faire)

martin
05 Mar 2011

Oui, que doit on faire du "script.js" svp ?

Orion
06 Mar 2011

Hello, il doit être placé au même endroit que les fichiers suivants : submit.php, connect.php, comment.php,
comment.class.php
@++

07 Mar 2011

Bonjour,
Merci pour ce script ..
Je viens de l'intégrer sur mon site.
Les commentaires des articles s'ouvrent dans une colorbox,
j'ai rajouter juste un petit bout de code pour le nombre de commentaire sur l'article et l'ouverture dans colorbox

je met ce code ( très simple) au cas ou ça intéresserait certains.

<?php

function commentaire($id){
$sql_nb = "SELECT id FROM tb_comments WHERE page_id = '$id'";
$req = mysql_query($sql_nb) or die('Erreur SQL !<br>'.$sql_nb.'<br>'.mysql_error());
$nb_resul = mysql_num_rows($req);
if ($nb_resul == 0 )
{
echo "<img src='images/icon_commentaire.png' /> Pas de commentaire, <a class='comm' href='commm/comment.php?id=$id'>Ajouter le votre </a>";

}else{

echo "<img src='images/icon_commentaire.png' /> " .$nb_resul. "commentaire(s), <a class='comm' href='commm/comment.php?id=$id'>Ajouter le votre </a>";
}

} ?>

Orion
08 Mar 2011

@camyo : Merci pour ta contribution camyo, ton code est simple et pratique.

larso
12 Mar 2011

Salut Orion,
merci pour tes scripts !
Cela dit j'ai une question : à part "connect.php" n'y a t'il pas autre chose à modifier dans l'archive ? Ou une donnée à faire passer dans l'url ?

Orion
14 Mar 2011

Mm éventuellement le fichier submit.php

mail('email@email.com','Nouveau commentaire',$msg);

remplace juste email@email.com par ton adresse. C'est la notification qui te sera envoyé dès que quelqu'un post un commentaire =D

wassime
15 Mar 2011

ca match pas chez moi ( Unable to establish a DB connection ) voila j esayyer de l'uploader sur mon ftp http://www.bladilol.com/comment/comm/connect.php

Orion
17 Mar 2011

@wassime : Salut, apparement un problème de connexion, vérifie les paramètres que t'as entré dans le fichier "connect.php" et check aussi si t'as base de données ainsi que la table existe et coresspondent bien.

larso
17 Mar 2011

Merci de ta réponse, malheureusement le module ne fonctionne pas chez moi : la connexion à la BDD se fait, mais quand j'envoie le formulaire rien ne se passe, aucun traitement, pourtant tous mes fichiers sont dans le dossiers "comm" de l'archive où j'ai rajouté "comment.php" et je n'ai rien modifié (à part "connect.php")
Aurais-tu une idée ?

Orion
17 Mar 2011

@larso : Ya des chances pour que le fichier script.js soit mal placé. Vérifie à l'aide de Firebug (onglet réseau) si tous les fichiers et scripts se chargent commme il faut. @++

Mooks
06 May 2011

Bonjour,

Très intéressé par ce module de commentaires, je me suis lancé à la tache... mais je ne sais pas pourquoi : rien ne s'affiche.

J'ai créé mon site web avec un logiciel WYSIWYG, mes connaissance en programmation étant donc limité. Cependant, j'ai tout fait dans les règles de l'art, ma table est bien créée, les infos du fichiers connect.php semblent ok. Je n'ai aucun message d'erreur.

Et pourtant, lorsque je tente de lancer le fichier connect.php (hébergé bien sur, pas en local), et bien rien ne se passe. Ecran blanc.

Je suis chez Mavenhosting, et apparemment le serveur gère l'Ajax selon eux.

Une solution pour un humble serviteur s'étant fait chi** pour écrire un pavé long comme le Danube? ;-)

Merci.

Mooks
06 May 2011

Encore moi... bizarrement, après 15 minutes de tests, et sans avoir changé quoi que ce soit, quelquechose s'affiche maintenant!

J'ai les entrées Nom, Mail, Commentaire, Site (facultatif), mais lorsque je clique sur envoyer, rien ne se passe.

Qui plus est, la feuille css ne semble pas être prise en compte. J'ai uniquement du texte.

Une solution?

Mooks
06 May 2011

En fait j'ai qqc quand je clique sur comments.php, rien quand je clique sur connect.php :-(

jo
22 May 2011

SUPER le tuto ! merci

genhcn
01 Jun 2011

Mes questions :
Serait-ce possible d'intégrer un captcha sur ce script?

Ensuite, disons que je veux intégrer ce script sur des photos, l'adresse de ma page est :
http://monsite.com/showmedia.php?&mediaID=1552
J'ai changé page_id par mediaID mais ça ne fonctionne pas. Je parviens à faire apparaitre la boite pour les commentaires mais il ne se passe rien si j'y inscrit quelque chose. Par contre, si je fais apparaitre juste le script, seul, sur une page, le commentaire s'enregistre bien dans la base de données et apparaît ensuite.

La base de données a été créée, j'ai aussi changé page_id par mediaID en la créant.
Suis-je complètement dans le champs ou il y a une possibilité, sans trop jouer dans le code de la page existante?

Merci

kamal
01 Jun 2011

SUPER le tuto ! merci

Orion
04 Jun 2011

@genhcn : à mon avis c'est tout à fait possible, mais pour l'instant ça n'est pas dans mes projets, peut-être que cette amélioration sera apportée dans une future version du script. Sinon pour ta deuxième question, il faut juste que tu fasses bien attention à bien remplacer page_id par mediaID partout, à savoir dans comment.php, dans la base de données mais aussi dans submit.php. Si tu le remplace bien partout il y a aucune raison que ça ne fonctionne pas ^^

@kamal : Merci ;-)

Ced
09 Jun 2011

Bonjour Orion,
Merci beaucoup pour le script et félicitations pour le boulot !
Je suis en train d'essayer de l'appliquer mais il me semble avoir le même problème que genhcn plus haut :
Le formulaire s'affiche, la connexion est ok, mais la fonction javascript ne semble pas s'effectuer au submit.
Donc :
Le bouton ne change pas "envoyer" en "Chargement en cours..",
et pas d'enregistrement dans la base (et donc pas de commentaire affiché)

Je suis un peu novice en javascript.
J'appelle le script dans le header (<script src="comm/script.js") et firebug le trouve...

Help ! :)

Je dois pas être loin et j'aimerais bien utiliser ce script..

Voici l'adresse de la page sur laquelle je travaille :

http://www.olsedf.com/site2/graffiti/090523_just-papeterie-darblay-04/01

celle là ou n'importe quelle image de la galerie...

Merci

Orion
09 Jun 2011

@Ced : Salut, essaie de mettre ça comme lien dans ton header : http://www.olsedf.com/site2/comm/script.js plutôt que juste comm/script.js

paprika
02 Aug 2011

Bonjour, voila mon probleme.
J'ai pas compris grand chose. j'aurais voulu savoir comment afficher le commentaire.
Il faut ouvrir le .js je suis perdu.
merci

koubi
25 Aug 2011

Salut, merci bcp pour ce système de commentaire.

je suis novice et je viens de testé plusieurs module de commentaire (qui sont daté...) et aucun ne fontionne!

je viens d'installé celui la, et j'ai fait appel a "script.js" dans header de cette façon:

<script type="text/javascript" src="comm/script.js"></script>

je sais pas si c'est comme ça qu'il faut faire :/ ???

Ensuite j'aimerai savoir alors comment ajouté un commentaire sur une page ???

30 Aug 2011

Belle réalisation et adaptation du script original avec des ajouts au niveau du code

meroni
15 Oct 2011

moi sa ne marche pas rien ne rentre dans la db pourtant ma page connect est bonne lookez http://heberg-land.fr.mu/kevadams/comment_system/

19 Nov 2011

Bonjour,
Mon problème est le même que d'autres.
Tout est bien créé, mais quand je poste un commentaire rien ne se passe !

Aidez-moi s'il vous plait, c'est assez urgent :)

19 Nov 2011

http://doc-informatiques.fr/fifous/comm/comment.php

DD
22 Nov 2011

Bonjour , pas moyen de trouver l'erreur , il me signal tjrs :
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in comment.class.php on line 5
-------
ça vient de MySQL ?
+
dans $db_database = ' '
il faut mettre quoi ?
=
Merci

09 Dec 2011

Grace à votre élève, je vois votre sourire. Demain, Bonjour!

Mac
22 Dec 2011

Bonjour, heureusement qu'il y a le lien du tuto original, certe en anglais, car vous avez fait des oublis et des codes mal placés dans des fichiers.

sdfsdf
21 Jan 2012

fsdfsd

21 Jan 2012

Sympa le design!!, je poste ici surtout pour tester par curiosité.

22 Jan 2012

Sympa :)

Arnaud
24 Jan 2012

Hello,
super script mais bon impossible de le faire marcher...cela fait plusieurs jours que je m'y colle mais sans résultats.
quand je poste mon commentaire, le code javascript fonctionne, mon commentaire apparaît avec un bel effet sur ma page mais étonnement aucun enregistrement dans ma BDD :/ (évidemment lorsque je rafraîchi ma page tous mes commentaires disparaisse)J'ai beau vérifier ma requête pour l'enregistrement mais je ne trouve pas l'erreur...quelqu'un aurait une idée (j'ai évidemment lu le tuto original...) merci

ego
06 Feb 2012

Trés bon tuto
merci

mimie
08 Feb 2012

Sympa !

Ajouter un commentaire


Voir une démo
Télécharger l'archive
Voir une démo
Module de commentaire AJAX / PHP
Fichier : comm.zip

Taille : 726Ko
Voir une démo
Télécharger l'archive
Source
Accéder au site officiel
Débutant
Intermédiaire
Avancé