Javascript 仅适用于第一篇文章的评论

Javascript 仅适用于第一篇文章的评论,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我给一个状态框编码。这是成功的。然后,我对状态的注释系统进行编码。一切都很顺利。但其中有一个问题 问题: 当发布了多个状态时,它只允许对第一个状态进行评论。如果我试图对第二个状态发表评论,它将不会加载AJAX请求。我也试着检查开发控制台,但没有显示任何内容 注意:我通过AJAX将状态加载到主页中。注释由JavaScript函数发布,该函数发送$.ajax({type:“post”})对文件的请求,该文件从URL检索文本、用户ID和所有内容,以将其保存到数据库中 请告诉我这里面是否有逻辑,可能是什

我给一个状态框编码。这是成功的。然后,我对状态的注释系统进行编码。一切都很顺利。但其中有一个问题

问题: 当发布了多个状态时,它只允许对第一个状态进行评论。如果我试图对第二个状态发表评论,它将不会加载AJAX请求。我也试着检查开发控制台,但没有显示任何内容

注意:我通过AJAX将状态加载到主页中。注释由JavaScript函数发布,该函数发送
$.ajax({type:“post”})对文件的请求,该文件从URL检索文本、用户ID和所有内容,以将其保存到数据库中

请告诉我这里面是否有逻辑,可能是什么问题

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']; ?>');" />
<?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));
 ?>



原因是当您重复使用id=“txt”时。脚本将只识别第一个,然后您就可以了。也正如@shut提到的,id需要是唯一的。将其更改为类
class=“txt”

然后调用函数本身

$('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>




原因是当您重复使用id=“txt”时。脚本将只识别第一个,然后您就可以了。也正如@shut提到的,id需要是唯一的。将其更改为类
class=“txt”

然后调用函数本身

$('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>




任何元素的id必须是唯一的。
您正在使用id为txt的注释框,用于所有帖子,然后它总是从第一个文本区域(用于第一篇帖子)中拾取数据,如果其他帖子为空,AJAX不会发送请求,如果文本区域的值为空。

任何元素的id都必须是唯一的。
您正在使用id为txt的注释框进行所有帖子,然后它总是从第一个文本区域(第一篇帖子)中选取数据,如果其他帖子为空,AJAX不会发送请求,如果文本区域的值为空。

警告:当使用
mysqli
时,您应该使用并将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将
$\u POST
$\u GET
数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。在显示条目时,您应该进行
bbcode
渲染,而不要在插入数据库时进行渲染。如果您过早地这样做,则意味着您需要将该内容放入原始页面,从而使自己暴露于严重的XSS问题中。显示多篇文章如何显示在您的页面中。如果您有该
textarea id=txt1
的多个副本,那么这就是您的问题所在
id
在整个文档中必须是唯一的,getElementById将只返回找到的第一个id,因为存在多个id是非法的。好吧。AJAX请求呢?,特别是,当您尝试与这些元素交互时,它将导致和CSS中出现问题。警告:当使用
mysqli
时,您应该使用和将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将
$\u POST
$\u GET
数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。在显示条目时,您应该进行
bbcode
渲染,而不要在插入数据库时进行渲染。如果您过早地这样做,则意味着您需要将该内容放入原始页面,从而使自己暴露于严重的XSS问题中。显示多篇文章如何显示在您的页面中。如果您有该
textarea id=txt1
的多个副本,那么这就是您的问题所在
id
在整个文档中必须是唯一的,getElementById将只返回找到的第一个id,因为存在多个id是非法的。好的。AJAX请求呢?特别是因为当您尝试与这些元素交互时,它将在和CSS中引起问题。