J'ai trouvé un script sympa permettant de mettre en place le commentaire avec une animation sauf que je n'arrive pas à le mettre en place correctement.
Mon envoie de formulaire ne fonctionne pas avec le query mais fonctionne sans.
<?php
if(isset($_POST['ajout_commentaire'])){
if(!empty($_POST['contenu'])){
$posteur = $_SESSION['pseudo'];
$contenu = $_POST['contenu'];
$id_page = $_GET['id'];
$date = date('Y-m-d');
$commentaires= $bdd->prepare("INSERT INTO `commentaire` VALUES ('', ?, ?, ?, ?)");
$commentaires->execute(array($id_page, $contenu, $posteur, $date));
}
}
?>
<script>
$(document).ready(function() {
// Au submit du formulaire
$('#form').submit( function() {
var commentaire = $('#contenu').val();
// On supprime les anciens messages d'erreurs ou de succès
$('.erreur').remove();
$('.ok').remove();
// Si on a commentaire à ajouter
if (commentaire != '') {
// On compte le nombre de commentaire déjà présent + celui qui va être créé
var nbCom=1;
$('#commentaire p').each(function() { nbCom++; });
// On enlève la class "last" à l'ancien dernier
$('.last').removeClass('last');
// On ajoute le nouvel élément
$('#commentaire').prepend('<p class="last" id="com_'+nbCom+'"><strong>'+pseudo+'</strong> a dit :<br />'+commentaire+'</p>');
// On le met pair ou impair
if ($('.last').next().is('.pair'))
$('.last').addClass('impair');
else
$('.last').addClass('pair');
if (!$('.last').next().is('p'))
$('.last').addClass('first');
// On efface le contenu du formulaire
$('#contenu').val('').focus();
$('#contenu').after('<span class="ok">Commentaire ajouté avec succès</span>');
$('.ok').hide().fadeIn('slow');
} else {
if (commentaire == '')
$('#contenu').after('<span class="erreur">Champ requis</span>');
$('.erreur').hide().fadeIn('slow');
}
// On retourne false pour ne pas recharger la page
return false;
});
});
</script>
<form action="" method="post" id="form">
<legend>Ajouter un commentaire</legend>
<table width="100%" border="0">
<tr>
<td>Commentaire:</td>
<td><textarea name="contenu" id="contenu" cols="55" rows="10"></textarea></td>
</tr>
<tr>
<td>Valider:</td>
<td><input type="submit" name="ajout_commentaire" value="Envoyer" /></td>
</tr>
</form>
</table>
<?php
$getCommentaireQuery = $bdd->query("SELECT * FROM `commentaire` WHERE id_page=".$_GET['id']." ORDER BY `id` DESC LIMIT 0,4") or die(mysql_error());
while($getCommentaires = $getCommentaireQuery->fetch())
{
?>
<div id="commentaire">
<p class="last pair first" id="com_1"><strong><?=$getCommentaires['posteur']; ?></strong> a dit :<br /><?=$getCommentaires['contenu']; ?></p>
</div>
<?php } ?>
En gros je voudrais juste ne pas rafraichir la page mais que le commentaire s'ajoute directement.Merci d'avance à ceux qui pourront m'aider.