使用Ajax在PHP中发表评论

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Ajax在PHP中发表评论相关的知识,希望对你有一定的参考价值。

我知道这里已经发布了一些问题但我无法找到问题的解决方案。我对任何javascript / ajax都非常糟糕,并且我在尝试使用我的ajax代码时遇到困难。

我正在为我的网站在视频页面上构建一个简单的评论系统。我用php构建了评论系统,但现在我希望得到更多的进展并通过ajax将数据发布到我的comments.php文件中。我希望在不刷新页面的情况下动态显示注释。我已经阅读了一些教程,但出于某种原因,每当我尝试使用js时,我都会感到非常困惑。我认为这是语法:S。我将在下面发布我的代码,如果有人能告诉我哪里出错了,那将是一个巨大的帮助!

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请求

<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控制台错误显示我:

GET(localhost / WEBSITES / myvideosite / css / homepage.css) - 无法加载资源:服务器响应状态为404(未找到)

它指向我的jquery <script src="js/jquery-1.11.3.min.js"></script>文件,它在那里是挑衅吗?

答案

Sucess!

经过一整天的研究和尝试不同的事情,我终于开始工作了!

<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>

如果有人有更好的建议,请随意分享,因为我是一个真正的新手js,真的想改进。感谢所有共享评论。

以上是关于使用Ajax在PHP中发表评论的主要内容,如果未能解决你的问题,请参考以下文章

ajax评论

使用 php sdk 发表照片评论

如何使用PHP从访问者在我的网站上发表Twitter评论?

php 使用AJAX更新评论自定义字段

在 facebook 外的 facebook 粉丝页面上发表评论和点赞新闻

在 Xcode 中使用 Json Wordpress 发表评论