0
나는 ajax로 만든 반응 시스템을 사용하고 있습니다. 따라서 사용자가 반응을 게시하면 Ajax 요청에 의해 처리되고 즉시 반응이 표시됩니다. 지금 그는 초기로드 된 반응 아래에 새로운 반응 (아약스 요청에 의해 추가됨)을 배치합니다. 그러나 초기로드 된 반응은 데이터베이스에서 DESC 순서로 쿼리되므로 새로운 반응은 초기로드 된 반응 위에 위치해야합니다. 내 코드 :이전에로드 된 콘텐츠 위의 콘텐츠를 표시 하시겠습니까?
HTML :
<div id="messages">
<?
$sql = "SELECT *
FROM items_comments, users
WHERE items_comments.item_id = '".$id."'
AND items_comments.user_id = users.user_id
ORDER BY comment_id DESC";
$result = $Db->sQuery($sql);
while($row = mysql_fetch_array($result)){
?>
<div id="com_loaded">
<div id="com_loaded_height"></div>
<div id="com_loaded_userpic"><a href="#" class="tooltip"><img src="<?=$row['user_pic']?>" class="img_poster" /><span><?=$row['user_name']?></span></a></div>
<div id="com_loaded_content">
<div id="com_loaded_poster"><a href="#"><?=$row['user_name']?></a></div>
<div id="com_loaded_text"><?=$row['comment_text']?></div>
</div>
<div id="com_loaded_divide"></div>
</div>
<?
}
?>
</div>
JS :
$(function() {
$(".submit-comment").click(function() {
var text = $(".txtinput").val();
var itemid = "<?=$id?>";
var userid = "<?=$_SESSION['user_id']?>";
var dataString = 'text=' + text + '&userid=' + userid + '&itemid=' + itemid;
if(text == '') {
$('#content_error1').fadeIn(250);
$('#content_error1').delay(1500).fadeOut(500);
} else {
$.ajax({
type: "POST",
url: "/ajax/comments.php",
data: dataString,
success: function(html){
$("#messages").append(html);
}
});
}
return false;
});
});
PHP 스크립트 아약스
<? session_start();
require_once("../include/database.php");
$Db = new Database();
$text = $Db->escape($_POST['text']);
$itemid = $_POST['itemid'];
$userid = $_POST['userid'];
$date = date('Y-m-d');
$sql = "SELECT comment_id
FROM items_comments
ORDER BY comment_id DESC LIMIT 1";
$result = $Db->sQuery($sql);
$row = mysql_fetch_array($result);
$comment_id = ($row['comment_id'])+1;
$sql = "INSERT INTO items_comments (comment_id, item_id, user_id, comment_date, comment_text)
VALUES('$comment_id', '$itemid', '$userid', '$date', '$text')";
$Db->uidQuery($sql);
$sql = "SELECT *
FROM items_comments, users
WHERE items_comments.comment_id = '".$comment_id."'
AND items_comments.user_id = users.user_id
ORDER BY comment_date DESC";
$result = $Db->sQuery($sql);
$row = mysql_fetch_array($result);
$Db->closeConnection();
?>
<div id="com_loaded">
<div id="com_loaded_height"></div>
<div id="com_loaded_userpic"><a href="#" class="tooltip"><img src="<?=$row['user_pic']?>" class="img_poster" /><span><?=$row['user_name']?></span></a></div>
<div id="com_loaded_content">
<div id="com_loaded_poster"><a href="#"><?=$row['user_name']?></a></div>
<div id="com_loaded_text"><?=$row['comment_text']?></div>
</div>
<div id="com_loaded_divide"></div>
</div>
Moonwave99, 정말 훌륭합니다! 고마워. 나는 prepend()에 대해 몰랐다. – Stefan