Posting a comment in PHP with Ajax

I know there are a few of these questions posted on here already but i am having trouble finding a solution to my problem. I am very bad with anything javascript/ajax and i am having difficulties trying to get my ajax code to work.

I am building a simple commenting system on a video page for my website. I have built the commenting system with php but now i want to get more advance and post the data to my comments.php file via ajax. I want the comments to display dynamically without refreshing the page. I've read a few tutorials but for some reason whenever i try work with js i get really confused. I think it's the syntax :S. I'll post my code below and if anyone can tell me where i am going wrong it will be a massive help!

videos.php

       // comment box
     if($user->isLoggedIn()){ 
        //login to comment
     } else { ?>
    <div id="user-comment" class="comment-post">
            <form id="comment-form" method="post">
                <textarea id="comment_body" name="comment"> </textarea>
                <input id="submit-btn" type="submit" name="comment_post" value="Post Comment" >
                // csrf-token generator
                <input type="hidden" id="auth-token" value="<?php echo token::generate(); ?>"></input>
            </form>     
        </div>
//post comments 
<div id="comments_post" class="comments-box">
        <?php 
            $get_comments = // query the db here
            if(!$get_comments->results()){ ?>
                //no comments...
        <?php
            } else {
                foreach ($get_comments->results() as $comment) { ?>
                <div class="comment-header">
                    <?php echo $comment->username . ' | ' . $comment->added; 
                    if ($user == $comment->user OR $user->hasPermission('admin')) { ?>
                            <a href="delete-comment.php"><i class="fa  fa-trash-o onl-link-icon text-right"></i></a>
                        <?php
                    }
                    ?>
                </div>
                <div class="comment-body">
                    <p><?php echo $comment->comment; ?></p>
                </div>

        <?php 
                }
            }
        ?>
    </div>

ajax request

<script type="text/javascript">
$(document).ready(function(){

  //Post Comment
  $("#submit-btn").on('.submit','click',function(){
    var body = $('#comment_body');
    $.ajax({
      url: 'comments.php',
      type: 'post',
      async: false,
      data:{
        'comment_body' : body
      },
      success:function(){ 
        $('#comment-box').toggleClass("comment-hide");
      }
    });
  });

});
</script>

comments.php

if($_POST['auth_token'] === session::get('access_token')){
  if(isset($_POST['comment_body'])) {
    $validate = new validate();
     // Validate Data from $_POST 
      $validation = $validate->check($_POST, array(
        'comment_body' => array(
          'name' => '<b>Comments</b>',
          'required' => true,
          'str_min' => 1,
          'str_max' => 400,
          'comment_filter' => true,
          'sql_safe' => true  
          ),

          ));

      if($validation ->passed()){
        $comment = escape($_POST['comment']);
        try {
        $user->create('video_comments', array(  
            'comment' => $comment,
            'user_id' => $user->id,
            'video_id' => $video,
            'username' => $user->username,
            'added' => date('Y-m-d H:i:s')
          ));
        } catch(Exception $e) {
          die($e->getMessage()); 
        }
        redirect::to($page);


      } else {
        session::flash('comment_error', 'Comment Failed');
        redirect::to($page);
         die();
      }
} else { redirect::to(404); }
} else { redirect::to(404); }

UPDATE #1 the console error is showing me this:

GET (localhost/WEBSITES/myvideosite/css/homepage.css) - Failed to load resource: the server responded with a status of 404 (Not Found)

it points to my jquery <script src="js/jquery-1.11.3.min.js"></script> file which is defiantly there?


Sucess!

After a long day of researching and trying out different things I have finally got it to work!!

<script type="text/javascript">
$(document).ready(function(){

  $("#submit-btn").click(function(){
    var body = $('#comment_body').val();
    var token = $('#auth-token').val();
    if(body== null)
    {
    window.alert('Please enter a comment.');
    }
    else
    {
    $.ajax({
      type: 'POST', 
      url: 'comment.php',
      async: false,
      data:{
        'auth_token' : token,
        'comment_body' : body
      },
      success: function(result){
        //alert(result);
        $('.comment-post').toggleClass("comment-hide");
        $('.comment-sucess-hide').toggleClass("comment-sucess");
        $('#comments_post').load(document.URL +  ' #comments_post');
        }   
        });
        }
        return false;
        });

  $('.del-com').click(function(){
    var comid = $(this).attr('id');
    $.ajax({
      url: 'comment.php',
      type: 'POST',
      async: false,
      data:{
        'rmv' : comid
      },
      success:function(){ 
        $('#comments_post').load(document.URL +  ' #comments_post');
      }
    });
  });


});
</script>

If anyone has some better suggestions please feel free to share as i am a real novice with js and really want to improve. Thanks to all that shared comments.

链接地址: http://www.djcxy.com/p/45968.html

上一篇: 解析Google Places API的JSON结果

下一篇: 使用Ajax在PHP中发表评论