私は自分のサイトにコメントシステムを作成しようとしています。私はajax部分を管理し、コメントはフォームから呼び出されたphpファイルに送信されます。php-fileはデータをmysqldbに保存します。保存後、データは既存のコメントに追加されます。
私が抱えている問題は、同じページの前のコメントの後に別のコメントを投稿すると、次のコメントが2回追加されることです。もう一度やり直すと、次の1つが3回追加されます。どこかでjqueryが間違っていると思いますが、見つからないようです。
これが私が使用しているフォームです:
<form class="short style" id="postnewscomment" name="postnewscomment" onsubmit="javascript:postnewscomments();">
<textarea style="width:95%;" name="commenttext" required data-required="true" placeholder="Uw comment" /></textarea>
<input type="hidden" name="task" value="addcomment" />
<input type="hidden" name="postername" value="<? echo $_SESSION['user_id']; ?>" />
<input type="hidden" name="newsid" value="<? echo $newsid; ?>" />
<div class="button">
<button value="postnews" name="Submit" type="submit">Add Comment</button>
</div>
</form>
これがフォームによって呼び出される私のjqueryコードです:
function postnewscomments() {
$("#postnewscomment").submit(function(e){
e.preventDefault();
var hasError = false;
var url = "postnewscomments.php";
var texttopost = "#postnewscomment";
if(hasError == false) {
$.post(url, $(texttopost).serialize() ,function(data) {
$(data).hide().appendTo("#newscomment").fadeIn(1000);
// code to reset form values to empty
$( '#postnewscomment' ).each(function(){
this.reset();
});
});
}
return false;
});
}