我编写了一个状态框。它很成功。然后我为状态编写了评论系统。一切都很好。但它有一个问题。
问题: 当发布多个状态时,它只允许对第一个状态发表评论。如果我尝试在第二个状态上发表评论,它将无法加载AJAX请求。我也尝试检查开发控制台,但它没有显示任何内容。
注意:我将AJAX的状态加载到主页面中。评论由JavaScript函数发布,该函数将$.ajax({type: "post"});
请求发送到文件,该文件检索文本,用户ID以及URL中的所有内容以将其保存到数据库中。
请告诉我其中是否有任何逻辑,可能是什么问题。
jQuery AJAX函数发表评论
function send(id, post_id) {
var pos = $("#txt").val();
var post = pos.trim();
if(post !== '') {
$.ajax({
url: 'comment.php?id='+id+'&post_id='+post_id+'&post='+post,
type: "POST",
success: function() {
reload();
}
});
}
}
这就是我所说的:
<textarea cols="70" id="txt" placeholder="Write a comment.." class="input-user"></textarea><br />
<br />
<input type="submit" value="Post" style="background: #f2f2f2; width: 60px; height: 40px; padding: 5px; border-radius: 5px;" onclick="javascript:send('<?php echo $_SESSION['id']; ?>', '<?php echo $post['id']; ?>');" />
comment.php文件:
<?php
include("includes/config.php");
include("includes/bbcode.php");
$id = intval($_GET['id']);
$post_id = intval($_GET['post_id']);
$pos = bbcode($_GET['post']);
$post = mysqli_real_escape_string($con, $pos);
$post_comment = mysqli_query($con, "INSERT INTO comments(post_id, user_id, comment) VALUES('".$post_id."', '".$id."', '".$post."')") or die(mysqli_error($con));
?>
再次:所有这些仅适用于第一篇文章,即您只能对第一篇文章发表评论,如果您尝试评论第二篇或更高版本的帖子,AJAX不会甚至发送请求..
答案 0 :(得分:0)
原因是因为你反复使用id =“txt”。脚本只会识别第一个,之后你就是吐司。另外,@ shut提到id需要是唯一的。将其更改为班级class="txt"
var pos = $(".txt").val();
然后按原样调用你的函数
$('form').on('click','.txt',function() {
send('id_1', 'post_id_1');
});
function send(id, post_id) {
var pos = $(".txt").val();
var post = pos.trim();
if(post !== '') {
$.ajax({
url: 'comment.php?id='+id+'&post_id='+post_id+'&post='+post,
type: "POST",
success: function() {
}
});
}
}
假设你有一个单独的表格
<form>
<textarea cols="70" class="txt" placeholder="Write a comment.." class="input-user"></textarea><br />
<br />
<input type="button" value="Post" class="txt" style="background: #f2f2f2; width: 60px; height: 40px; padding: 5px; border-radius: 5px;" onclick="javascript:send('<?php echo $_SESSION['id']; ?>', '<?php echo $post['id']; ?>');" />
</form>
答案 1 :(得分:0)
id 必须是唯一的。 你正在使用所有帖子都有id txt的评论框然后它总是从第一个文本区域(第一个帖子)中选择数据,如果是其他帖子则为空白,如果textarea的值为空,则AJAX不发送请求。