我正在尝试做一个评论系统,但我的代码似乎在运行错误时,它不应该,任何人都知道为什么?这是代码:
view.php(我使用ajax从另一个文件中调用它,该文件虽然很好,但它也有jquery / ajax / etc库):
<?php
include 'inc/dbc.php';
include 'inc/functions.php';
if(isset($_GET['user']) && !empty($_GET['user'])) {
$username = $_GET['user'];
} else {
$username = $_SESSION['user'];
}
$my_name = $_SESSION['username'];
if (loggedIn() == true) {
$chech_posts = mysqli_query($mysqli, "SELECT * FROM wallposts WHERE posted_to = '$username' AND deleted = 0 ORDER BY posted_date DESC, posted_time DESC ");
while ($row = mysqli_fetch_array($chech_posts, MYSQLI_BOTH)) {
$post_id = $row['post_id'];
$postby = $row['posted_by'];
$postto = $row['posted_to'];
$post = $row['post'];
$post_date = $row['posted_date'];
$post_time = $row['posted_time'];
$p_avatar = getuser($postby, 'avatar');
$p_first = getuser($postby, 'firstname');
$p_last = getuser($postby, 'lastname');
?>
<div class='wi wall' id='<?php echo $post_id;?>'>
<div class='post'>
<div class='post-container'>
<div class='post-header'>
<div class='pull-left'>
<?php
if ($postby == $postto) {
echo '<b>'.$postby.'</b>';
} else {
echo '<b>' . $postby . '</b> <i class="fa fa-chevron-right"></i> <b>' . $postto . '</b>';
}
?>
</div>
<div class='post-img'><img src="images/users/<?php echo $p_avatar;?>" alt="<?php echo $p_first . ' ' . $p_last . '\'s Profile Picture' ;?>" class="img-circle" align="middle"></div>
<div class='pull-right'><?php echo $post_date;?></div>
<div class='drop'>
<div class="dropdown">
<button class="btn btn-default dropdown-toggle car" type="button" id="postMenu" data-toggle="dropdown">
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="postMenu">
<?php
if ($username == $my_name) {
?>
<script type="text/javascript">
$(function() {
$('#delete').click(function(e){
e.preventDefault();
var post_id = "<?php echo $post_id;?>";
$.ajax({
type: 'POST',
url: 'post_action.php?action=delete&post_id='+post_id,
data: 'delete',
success: function() {
alert('Successfull deleted post!');
$('#wallpos').load('view.php?user='+user);
},
error: function() {
alert('Post was not deleted!');
}
});
});
});
</script>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#" id='delete'><i class='fa fa-trash-o fa-lg'></i> Delete</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
<?php
}
?>
<li role="presentation" class="divider"></li>
<li role="presentation" class="dropdown-header">Report As</li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Spam</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Inappropriate</a></li>
</ul>
</div>
</div>
</div>
<div class='post-body'>
<p><?php echo $post;?></p>
</div>
<div class='post-footer'>
<div class='lk-cmt-shr'>
<div><a href='' onClick="return false;">Like</a></div>
<div><a href='' id='opencomment'>Comment</a></div>
</div>
<span id='comments'>
<span id='com'></span>
<script>
$(function() {
var post_id = "<?php echo $post_id;?>";
$(document).ready(function() {
$.get("loadcomments.php?post_id="+post_id);
});
var refresh = setInterval(function() {
$.get("loadcomments.php?post_id="+post_id);
}, 300000);
});
</script>
<span id='viewcomment'></span>
<div class='cform'>
<script type="text/javascript">
$(function() {
$(document).ready(function(){
var post_id = "<?php echo $post_id;?>";
var commentElement = 'cinput-'+post_id;
var comment = $('#'+commentElement).val();
$('#cinput-<?php echo $post_id;?>').keypress(function(e) {
if (e.which == 13) {
e.preventDefault();
if (comment == '') {
alert('comment cannot be blank');
} else {
$.ajax({
type: 'POST',
url: 'sendcomment.php?post_id='+post_id,
data: $('#cf-'+post_id).serialize(),
beforeSend: function() {
$('#com').html('<i class="fa fa-spinner fa-spin"></li>');
},
success: function(data) {
$('#com').hide();
$("#viewcomment").load("loadcomments.php?post_id="+post_id);
},
error: function(data) {
alert('could not post your comment:' + data);
}
});
}
}
});
});
});
</script>
<form method='post' id='cf-<?php echo $post_id;?>'>
<input type='text' class='form-control' id='cinput-<?php echo $post_id;?>' name='comment-<?php echo $post_id;?>' placeholder='Write a comment...'>
<!-- <input type='submit' name='post-comment' id='pc' value=''> -->
</form>
</div>
</span>
</div>
</div>
</div>
</div>
<?php
}
} else {
echo '<li>You must be <a href="index.php">logged</a> in to view ' . $firstname . '\'s posts.</li>';
}
?>
这是sendcomment.php:
<?php
include 'inc/dbc.php';
include 'inc/functions.php';
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
if(isset($_GET['user']) && !empty($_GET['user'])) {
$username = $_GET['user'];
} else {
$username = $_SESSION['username'];
}
$my_name = $_SESSION['username'];
$post_id = $_GET['post_id'];
if (isset($_POST['comment-'.$post_id])) {
$comment = stripcslashes(mysqli_real_escape_string($mysqli, $_POST['comment-<?php echo $post_id;?>']));
$c_date = date('D j F, Y g:i a');
$c_time = date('g:i:s');
$post_comment = mysqli_query($mysqli, "INSERT INTO wallcomments(wallpost_id, commenter, comment, comment_date, comment_time) VALUES ('$post_id', '$my_name', '$comment', '$c_date', '$c_time')");
if (!$post_comment) {
?>
<script type="text/javascript">
alert('Your comment was not posted');
</script>
<?php
} else {
?>
<script type="text/javascript">
alert('Your comment has been posted');
</script>
<?php
}
}
?>
答案 0 :(得分:0)
我认为以下问题导致了您的问题。
var comment = $('#cinput-<?php echo $post_id;?>').val();
相反,您只能在之前格式化元素ID并使用它。如下所示,
var post_id = "<?php echo $post_id;?>";
var commentElement = 'cinput-'+post_id;
var comment = $("#"+commentElement).val();
alert(comment);
它会提醒您输入的文字。同样你也改变了这一行
$('#cinput-<?php echo $post_id;?>').keypress(function(e) {