1

我创建了一个评论回复系统,使用 php 和 jquery。我的代码包含一个用于评论的函数,然后使用 jquery 我试图获取 comments_id ,它是每个评论和回复的 id 并将其保存为一个名为 comments_reply 的表。我唯一的问题是我无法获得comments_id,但我可以成功获得回复并将其存储在comments_reply 表中。知道为什么我的代码无法获取 comments_id 来存储它吗?

这是我在 php 中的函数,包括 jquery:

<?php

<script>

$(document).ready(function(){   
$('.reply').keyup(function(e){
    if(e.keyCode == 13){
        var comments_id = $(this).attr('comments_id');
        var reply = $(this).val();
        $.post('reply.php', {comments_id:comments_id, reply:reply});  
        $('.reply').val('');    
    }

});

});

</script>


function getComments(){

$comments = "";

$sql = mysql_query("SELECT * FROM comments ORDER BY comment_date DESC ") or die (mysql_error());

if(mysql_num_rows($sql) == 0){
    $comments = " <div class='each_comment'> There are no comments ...</div> ";
}
else
{
  while ($row= mysql_fetch_assoc($sql)){        

$comments .= "User Says : <div class='each_comment'> ".$row['comment_date']."".$row['comment']."

<input type='text' class='reply' comments_id='<?php ".$row['comments_id']." ?>' />

    </div> "; 
  }
 }
   return $comments;  
}
?>

这是我的页面:reply.php

<?php

$comments_id = $_POST['comments_id'];

$reply = $_POST['reply'];


mysql_query("INSERT INTO comments_reply VALUES ('', '$comments_id', '$reply') "); 

?>
4

1 回答 1

0

为了防止在提交到服务器时您的值和属性名称(完全相同)之间出现任何混淆,您应该在名称中添加引号。

$('.reply').keyup(function(e){
    if(e.keyCode == 13){
        var comments_id = $(this).attr('comments_id');
        var reply = $(this).val();
        $.post('reply.php', {"comments_id":comments_id, "reply":reply});  
        $('.reply').val('');    
    }

});

甚至可以解决您的问题

编辑

我还将更改您的自定义 html 属性名称,如下所示:

为了约定和可能有用的 html5 支持而更改comments_iddata-comment-idreplytodata-reply并且不要忘记更新所有用法(在 html 和 javscript 代码中)。

我还注意到您的 sql 代码VALUES ('', '$comments_id', '$reply')显示您正在向表中的第一列插入一个空白值,这是有原因的吗?

编辑2

因为当人们看答案是什么而不是阅读这个答案的评论时,我会把它放在这里:

代替

<input type='text' class='reply' comments_id='<?php ".$row['comments_id']." ?>' />

<input type='text' class='reply' comments_id='{$row['comments_id']}' /> 

否则 id 将包含不需要的字符。

于 2013-08-08T12:22:24.750 回答