使用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中发表评论的主要内容,如果未能解决你的问题,请参考以下文章