我是Javascript和JQuery的新手。现在,我正在尝试建立一个评论系统,您点击回复以显示包含该表单。但出于某种原因,第一个评论回复会提示表格,但不会提出下一个评论。我可以提出第3条评论的答复,但不是第4条评论。这种情况一直持续下去。这是php用于获取评论的功能。
function display_children($parent, $level){
global $db_upload;
global $comments;
if ($adj = $db_upload->query("SELECT * FROM comment WHERE parent_id = '$parent' AND url_id = '$comments'")){
if ($adj->num_rows){
while ($row = $adj->fetch_assoc()){
echo str_repeat("     |", $level). $row['m_username']. " on ". $row['date'].'<br>';
echo str_repeat("     |", $level).$row['comment'].'<br>'.'<br>';
?>
<a href="#" class="mix">
<small>reply</small><br><br><br>
</a>
<div class="reply_comment" style="display:none">
<table>
<tr><td>
<textarea name="comment_text" id="comment_text" rows="5" cols="50"></textarea>
</td></tr>
<tr><td>
<input type="button" id="comment_process" value="save" />
<input type="hidden" id="c" value="<?php echo $cmt; ?>">
</tr></td>
</table>
</div>
<script type="text/javascript" src="../secure/jquery.js"></script>
<script type="text/javascript" src="message.js"></script>
<?php
display_children($row['id'], $level+1);
}
}
}
}
这是我正在使用的jquery
$('.mix').click(function(){
$(this).next('.reply_comment').toggle();
});
答案 0 :(得分:0)
您不断地反复包含相同的JS文件:
<script type="text/javascript" src="../secure/jquery.js"></script>
<script type="text/javascript" src="message.js"></script>
你应该只需要这些(包括jquery之后)。
您也应该通过“ID”而不是按类来操作。
请执行以下操作:
<?php
function display_children($parent, $level){
global $db_upload;
global $comments;
if ($adj = $db_upload->query("SELECT * FROM comment WHERE parent_id = '$parent' AND url_id = '$comments'")) {
if ($adj->num_rows) {
while ($row = $adj->fetch_assoc()) {
echo str_repeat("     |", $level). $row['m_username']. " on ". $row['date'].'<br>';
echo str_repeat("     |", $level).$row['comment'].'<br>'.'<br>';
?>
<a href="#" class="mix" data-commentboxid="<?php echo $row['id']; ?>">
<small>reply</small><br><br><br>
</a>
<div id="post-id-<?php echo $row['id']; ?>" class="reply_comment" style="display:none">
<table>
<tr>
<td>
<textarea name="comment_text" id="comment_text_for-<?php echo $row['id']; ?>" rows="5" cols="50"></textarea>
</td>
</tr>
<tr>
<td>
<input type="button" id="comment_process_for-<?php echo $row['id']; ?>" value="save" />
<input type="hidden" id="c_for-<?php echo $row['id']; ?>" value="<?php echo $cmt; ?>">
</td>
</tr>
</table>
</div>
<?php
display_children($row['id'], $level+1);
}
}
}
}
?>
你的JS成了:
$('.mix').click(function(){
$('#post-id-' + (this).attr('data-commentboxid')).toggle();
});
答案 1 :(得分:0)
这里有一些错误:
您应该验证您的HTML,因为这可能是导致问题的原因。