Ajax Jquery评论页面

时间:2013-12-12 15:12:27

标签: javascript php jquery ajax

我在这里看过很多关于SO的帖子,我认为我所做的就是使用AJAX发送表单数据而不刷新页面。不幸的是它不起作用,我不知道它出了什么问题所以这是我的代码:

profile.php

<script>
    $(function () {
        $('form#commentform').on('commentsubmit', function(e) {
            $.ajax({
                type: 'post',
                url: 'insertcomment.php',
                data: $(this).serialize(),
                success: function () {
                    alert('MUST ALERT TO DETERMINE SUCCESS PAGE');
                    $("#comment").val('');
                }
            });
            e.preventDefault();
        });
    });     
</script>


<form id='commentform' method='post'>
<textarea class='comment' id='comment'></textarea>
<input type='hidden' name='activityid' value='$activityid'>
//$activityid is the ID of the status so the database knows what status ID to connect the comment with
<input type='submit' name='commentsubmit' value='Comment'>
</form>

insertcomment.php

<?php
include 'header.php';


$activityid=htmlspecialchars($_POST['activityid'], ENT_QUOTES);
$comment=htmlspecialchars($_POST['comment'], ENT_QUOTES);


$commentsql=$conn->prepare('INSERT INTO wp_comments (user_id, activity_id, comment, datetime) VALUES (:userid, :friendid, :comment, CURRENT_TIMESTAMP)');
$commentsql->bindParam(':userid', $_SESSION['uid']);
$commentsql->bindParam(':activityid', $activityid);
$commentsql->bindParam(':comment', $comment);
$commentsql->execute();   


include 'bottom.php';
?>

最终的结果是,注释会在不刷新页面的情况下插入到数据库中,然后重置文本区域。

截至目前,当我点击评论提交按钮时,它会刷新页面。

1 个答案:

答案 0 :(得分:1)

试试这个:

   $(document).ready(function(){
        $('form#commentform').submit(function( e ) {
            var postData = $(this).serializeArray();
            $.ajax({
                type: 'post',
                url: 'insertcomment.php',
                data: postData,
                success: function () {
                    alert('MUST ALERT TO DETERMINE SUCCESS PAGE');
                    $("#comment").val('');
                }
            });
            e.preventDefault();
        });
    });