0

私のワードプレス サイトには、標準のコメント送信フォームがあります。スクリプト (ajax) を追加したので、コメントを送信するためにページをリロードする必要はありません。すべてが機能していますが、ページを更新せずに送信されたコメントを表示するにはどうすればよいですか?

私のコード:

jQuery('document').ready(function($){  
var commentform=$('form#commentform');  
commentform.prepend('<div id="wdpajax-info" ></div>');  
var infodiv=$('#wdpajax-info');  
commentform.validate({  
    submitHandler: function(form){  
        var formdata=commentform.serialize();  
        infodiv.html('<p>Proszę czekać...</p>');  
        var formurl=commentform.attr('action');  
        $.ajax({  
            type: 'post',  
            url: formurl,  
            data: formdata,  
            error: function(XMLHttpRequest, textStatus, errorThrown){  
                infodiv.html('<p class="wdpajax-error" >Sprawdź wszystkie pola!</p>');  
            },  
            success: function(data, textStatus, html){
                $("ul.commentlist").append(formdata);
                $("ul.commentlist li:last").fadeIn("slow");
                if(data=="success")  
                    infodiv.html('<p class="wdpajax-success" >Dzięki, komentarz został dodany!</p>');  
                else  
                    infodiv.html('<p class="wdpajax-error" >Błąd</p>');  
                commentform.find('textarea[name=comment]').val('');  
            }  
        });  
    }  
  });  
});
4

1 に答える 1

1

コメントが実際にサーバー側に保存されたことをユーザーが確認できるように、ページを更新することをお勧めします。ページを更新せずにやりたい場合は、コメントで新しい div を追加する必要があります。これに似たもの:

success: function(data, textStatus, html){
            $("ul.commentlist").append(formdata);
            $("ul.commentlist li:last").fadeIn("slow");
            if(data=="success")  {
              infodiv.html('<p class="wdpajax-success" >Dzięki, komentarz został dodany!</p>');  
              // you should inicialize commentdiv with the selector of the part of the page you want to show the comment
              commentdiv.html('<p class="comment">'+formdata+'</p>');
}
于 2013-09-22T22:40:43.820 に答える