comment-reply jquery获取回复并将其存储在表中但不存储于comment_id

时间:2013-08-08 12:12:44

标签: php jquery

我创建了一个评论 - 回复系统,使用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') "); 

?>

1 个答案:

答案 0 :(得分: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属性名称,如下所示:

comments_id更改为data-comment-id,将reply更改为data-reply,以便提供常规和可能有用的html5支持,并且不要忘记更新所有用法(在html和javscript代码)。

我还注意到你的sql代码VALUES ('', '$comments_id', '$reply')显示你在表格的第一列插入一个空白值是否有原因?

<强> EDIT2

当人们看到答案的内容而不是阅读这个答案的评论时,我会把它放在这里:

替换

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

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

或ID将包含不需要的字符。