PHP / JavaScript发布到顶部?

I have a comment system written in PHP and JavaScript but each time I post the comment goes to the bottom. How do I make it appear at the top?

Here is my code:

The PHP code:

<?php
$sql = mysql_query( "SELECT * FROM `comments` WHERE perma_id = '$permalink' ORDER BY `date` DESC" );
$count = mysql_num_rows( $sql );
?>

<h2 class="comments"><?php echo $count; ?> Comments</h2>

<div id="flash"></div>

<ol id="update" class="timeline">

<?php
while( $row = mysql_fetch_assoc( $sql ) ) {
    $userSql = mysql_query( "SELECT * FROM `members` WHERE `id` = '$row[userid]'" );
    $userRow = mysql_fetch_assoc( $userSql );
    $name = $userRow[ 'userid' ];
    $comment = $row[ 'comment' ];
    $cDate = $row[ 'date' ];
    $icon = $userRow[ 'icon' ];
?>
<li class="box">
    <div class="left"><a href="<?php echo $site_url . '/wall/' . $name; ?>"><img src="<?php echo $site_url . '/' . $icon; ?>"/></a></div>
    <div class="right">
        <div class="name"><a href="<?php echo $site_url . '/wall/' . $name; ?>"><?php echo $name;?></a> said...</div>
        <div class="date"><?php echo date("M d, Y g:i a", $cDate); ?></div>
        <div class="clearfix"></div>
        <div class="comm">
            <div class="inside">
                <?php echo $comment; ?>
            </div>  
        </div>
    </div>
</li>
<?php
}
?>

The JavaScript code:

$(function() {
$('.com_submit').click(function() {
    var comment = $("#comment").val();
    var user_id = $("#user_id").val();
    var perma_id = $("#perma_id").val();
    var dataString = { comment: comment, user_id: user_id, perma_id: perma_id };
    if(comment=='') {
        alert('Please Give Valid Details');
    }
    else {
        $("#flash").show();
        $("#flash").fadeIn(400).html('<img src="../images/ajax-loader.gif" align="left" /> Loading Comment');
        $.ajax({
            type: "POST",
            url: "../commentajax.php",
            data: dataString,
            cache: false,
            success: function(html){
                $("ol#update").append(html);
                $("ol#update li:first").fadeIn("slow");
                $("#flash").hide();
            }
        });
    }
    return false;
}); 
});

I have li:first but it does not make it at the top

dstjh46606
dstjh46606 li:first只是一个css伪类,只适用于列表中的第一个<li>。它与排序列表元素的位置无关。CSS本身无法重新组织元素的顺序。
接近 9 年之前 回复
dongyue5686
dongyue5686 我已按日期按降序排序查询。显示以前的注释不是问题所在。这是新帖子出现在下面而不是顶部。我在某处读到了li:首先将它放在顶部而li:last将显示在底部。然而,它没有这样做。
接近 9 年之前 回复
dsa45664
dsa45664 这不是它们在循环中的显示方式。当我发布评论并收到回调时,评论会在所有之前的评论中位于循环的底部。我希望新的一个出现在顶部。
接近 9 年之前 回复
douzhaxian1267
douzhaxian1267 数据库有这个神奇的顺序选项,让你告诉他们如何排序数据...如果你想要最新的评论,然后让你的查询通过发布日期告诉数据库进行排序,并使最新的条目成为第一....
接近 9 年之前 回复
duandian4501
duandian4501 以不同的顺序将它们从数据库中拉出来?你有什么办法来缩小这个问题?这里有三种完全不同的技术。
接近 9 年之前 回复

4个回答



使用 .prepend()</ code>代替 .append()</ code> </ p >

您的:第一次</ code>淡入效果正常,它已经可见了。 但请记住,这只是一个jQuery选择器。</ p>
</ div>

展开原文

原文

Use .prepend() instead of .append()

Your :first fade in is working, it's just already visible. But remember that's only a jQuery selector.

doucha7329
doucha7329 谢谢prepend()的工作。 谢谢所有帮助过的人:)
接近 9 年之前 回复



.append总是走到尽头。 我通常复制ol的内容,将其附加到返回的dataString,然后将其放回ol。</ p>
</ div>

展开原文

原文

.append always goes to the end. i usually copy the contents of the ol, append it to the returned dataString, then put it back in the ol.



.append(html)</ code>替换为 .prepand(html)</ code> </ p>
</ div>

展开原文

原文

Replace .append(html) with .prepand(html)



我认为它正在发生,因为当你在javascript中调用append(html)时,输出被附加到更新div的末尾 ...当然,如果您还发布HTML(div代码)</ p>
</ div>,这将非常有用

展开原文

原文

I think it is happening because when you call append(html) in your javascript, the output is appended to the end of the update div... of course would be useful if you also post your HTML (the div code)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐