Stoper l'execussion de script ajax
divinushindi
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Tooms -
Tooms -
bonjour, j'ai déjà poser cette question mais pas de réponse, après plusieurs recherche je pas de solution alors je doit recommencer avec un autre titre.
j'ai un système de commentaire, que je traite avec ajax pour ne pas actualiser le navigateur, ça marche mais le problème c'est quand je click sur le bouton commenter au lieux d'enregistrer un seul commentaire, le script s’exécute plusieurs fois et enregistre le même commentaires 5,7,100 fois
j'aimerais que si je click sur commenter, qu'il y ai qu'un seul enregistrement, que le script transmet a la page comment_add.php qu'un seul commentaire par click
voici mon code:
comment.php
merci beaucoup d'avance
j'ai un système de commentaire, que je traite avec ajax pour ne pas actualiser le navigateur, ça marche mais le problème c'est quand je click sur le bouton commenter au lieux d'enregistrer un seul commentaire, le script s’exécute plusieurs fois et enregistre le même commentaires 5,7,100 fois
j'aimerais que si je click sur commenter, qu'il y ai qu'un seul enregistrement, que le script transmet a la page comment_add.php qu'un seul commentaire par click
voici mon code:
comment.php
<form class="form_com">
<textarea id="com_comment_<?= $bar_cmt;?>" class="com_comment" placeholder="votre commentaire"></textarea>
<input type="hidden" id="comment_id_<?= $bar_cmt;?>" value="0"/>
<input type="hidden" id="bar_cmt_<?= $bar_cmt;?>" value="<?= $bar_cmt;?>" />
<button type="submit" class="comment_sub" id="comment_sub_<?= $bar_cmt;?>">Commenter</button>
</form>
<script> $(document).ready(function(){ $(document).on('click', '#comment_sub_'+<?= $bar_cmt;?>, function(cmm){ cmm.preventDefault(); var com_comment = $('#com_comment_'+<?= $bar_cmt;?>).val(); var comment_id = $('#comment_id_'+<?= $bar_cmt;?>).val(); var bar_cmt = $('#bar_cmt_'+<?= $bar_cmt;?>).val(); $.ajax({ url : "comment/comment_add.php", method : "POST", data : {com_comment:com_comment, comment_id:comment_id, bar_cmt:bar_cmt}, dataType: "json", success:function(data) { if(data.error != '') { $('#pub_message').html(data.error); $('.comment_id').val('0'); } else{ $('#pub_message').html(data.error); } } }); }); }); </script> comment_add.php <code>require_once'../inc/functions.php'; if (session_status() == PHP_SESSION_NONE) { session_start(); } require_once'../identifiant.php'; $id_user = $_SESSION['auth']->id_user; $prenom_user = $_SESSION['auth']->prenom_user; $nom_user = $_SESSION['auth']->nom_user; $avatar_user = $_SESSION['auth']->avatar_user; if (!empty($_POST['com_comment'])) { $com_comment = $_POST['com_comment']; $quer = "INSERT INTO commentaire (id_com_parent, id_pub_com, id_user_com, prenom_user_com, nom_user_com, avatar_user_com, commentaire_com, date_time_com) VALUES (?, ?, ?, ?, ?, ?, ?, NOW())"; $statement = $pdo->prepare($quer); $statement->execute([$_POST['comment_id'], $_POST['bar_cmt'], $id_user, $prenom_user, $nom_user, $avatar_user, $com_comment]); } $data = array('error' =>$error); echo json_encode($data);</code>
merci beaucoup d'avance
A voir également:
- Stoper l'execussion de script ajax
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Impossible de répondre stop sms - Guide
- Script cmd - Guide
1 réponse
Salut,
en changeant :
par
ça donne quoi? Certes il y a preventDefault (je suis pas sûr qu'il soit au bon endroit toutefois)mais pour être sûr changer le submit en un bouton qui ne fera pas un submit à chaque clic. Sans oublier de mettre un .submit() au bon moment(en fin de fonction).
en changeant :
<button type="submit" class="comment_sub" id="comment_sub_<?= $bar_cmt;?>">Commenter</button>
par
<button type="button" class="comment_sub" id="comment_sub_<?= $bar_cmt;?>">Commenter</button>
ça donne quoi? Certes il y a preventDefault (je suis pas sûr qu'il soit au bon endroit toutefois)mais pour être sûr changer le submit en un bouton qui ne fera pas un submit à chaque clic. Sans oublier de mettre un .submit() au bon moment(en fin de fonction).